MVC 4过滤结果 - 重定向还是查看?

时间:2014-10-08 09:02:19

标签: c# asp.net-mvc-4

我正在构建MVC 4应用程序。 授权和异常处理使用过滤器完成。

在过滤器中,我可以使用RedirectToRouteResult 重定向用户到我的错误页面 或使用ViewResult 返回我的错误页面。

哪种变体在实践中更好?为什么?

3 个答案:

答案 0 :(得分:2)

1.Return View不会发出新请求,它只是在不更改浏览器地址栏中的URL的情况下呈现视图。

2.Return RedirectToAction使用MVC生成的URL更新浏览器地址栏中的新请求和URL。

3.Return Redirect也会更新浏览器地址栏中的新请求和URL,但您必须指定要重定向的完整URL

4.在RedirectToAction和Redirect之间,最佳做法是将RedirectToAction用于处理应用程序操作/控制器的任何事情。如果您使用重定向并提供URL,则需要在更改路由表时手动修改这些URL。

5.RedirectToRoute重定向到路由表中定义的特定路由。

答案 1 :(得分:1)

如果您想使用有限消息的静态数据移动错误页面,请使用ViewResult,否则请使用RedirectToRouteResult,您可以根据需要使用。

答案 2 :(得分:1)

这取决于填充视图模型的错误操作中是否存在任何逻辑(例如,设置http状态代码),或者您只有静态视图。当然,您可以将此逻辑移动到过滤器,但这会阻止您从另一个不使用相同过滤器的操作重定向。