我正在构建MVC 4应用程序。 授权和异常处理使用过滤器完成。
在过滤器中,我可以使用RedirectToRouteResult
重定向用户到我的错误页面
或使用ViewResult
哪种变体在实践中更好?为什么?
答案 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状态代码),或者您只有静态视图。当然,您可以将此逻辑移动到过滤器,但这会阻止您从另一个不使用相同过滤器的操作重定向。