【问题标题】:stackoverflow like url redirect像url重定向一样的stackoverflow
【发布时间】:2012-02-14 09:48:03
【问题描述】:

我想实现 stackoverflow 对 url 的作用。

domain.com/questions/1234/properTitle

domain.com/questions/1234/wrongTitle properTitle

但我不想联系数据库两次。

例如,在问题控制器操作中,我已经根据 1234 问题 ID 查询所有信息。我不想重定向并丢失所有这些信息,然后再次查询。我应该把它放在 TempData 还是什么?有什么有效的方法来处理这个?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    我认为手动缓存和检索应用程序中的数据更复杂(甚至效率更低)。无论如何,您的数据库服务器可能会缓存结果,并且第二次查询不会花费很长时间。

    更新:您可以使用模型作为参数重定向到重载操作。这可能看起来像这样:

    return RedirectToAction("Action", 
                             new { 
                                   id = 1234, 
                                   title = "properTitle", 
                                   model = myAlreadyRetrievedModel 
                             });
    

    【讨论】:

    • +1。我只是通过 chrome 运行它并调用没有标题的页面,调用只传递问题 ID 和空白标题。请求:Request URL:http://stackoverflow.com/questions/9274755/。第一个电话没有响应,但似乎直接重定向到第二个电话。第二次调用是这样进行的:Request URL:http://stackoverflow.com/questions/9274755/stackoverflow-like-url-redirect 然后将页面作为响应返回。这似乎表明初始操作将始终检索模型,并且正如您所说,将标题/模型传递给重定向。
    • 如果您预先传递完整的标题,但初始请求将返回响应。操作中似乎有类似于If title from url == title from model then return response, else return redirect using title from model 或类似的代码。
    猜你喜欢
    • 1970-01-01
    • 2014-04-04
    • 2011-01-09
    • 2013-04-01
    • 2014-12-13
    • 1970-01-01
    • 2014-11-02
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多