我正在構建MVC 4應用程序。 授權和異常處理使用過濾器完成。MVC 4過濾結果 - 重定向還是查看?
在過濾器,我可以重定向用戶使用使用ViewResult
我的錯誤頁面的RedirectToRouteResult
或返回查看我的錯誤頁面。
哪個變體在實踐中更好,爲什麼?
我正在構建MVC 4應用程序。 授權和異常處理使用過濾器完成。MVC 4過濾結果 - 重定向還是查看?
在過濾器,我可以重定向用戶使用使用ViewResult
我的錯誤頁面的RedirectToRouteResult
或返回查看我的錯誤頁面。
哪個變體在實踐中更好,爲什麼?
1.Return View不會提出新的請求,它只是呈現視圖而不會更改瀏覽器地址欄中的URL。
2.返回RedirectToAction使瀏覽器地址欄中的新請求和URL使用MVC生成的URL進行更新。
3.返回重定向也使得在瀏覽器的地址欄中顯示的新要求和URL被更新,但你必須指定完整的URL重定向
4.Between RedirectToAction和重定向,最好的做法是使用RedirectToAction用於處理應用程序操作/控制器的任何事情。如果您使用重定向並提供URL,則當您更改路由表時,您需要手動修改這些URL。
5.RedirectToRoute重定向到路由表中定義的特定路由。
如果您想在帶有限信息的靜態數據的錯誤頁面上移動,請使用ViewResult
,否則使用RedirectToRouteResult
,您可以隨意使用它。
這取決於在填充視圖模型的錯誤操作中是否有任何邏輯(例如,設置http狀態碼)或者您只有靜態視圖。當然,您可以將此邏輯移至過濾器,但這會阻止您從另一個不使用相同過濾器的操作重定向。
我曾經重定向到行動 – 2014-10-08 09:03:07
目前,我正在重定向到行動(通過路線),但我不確定這是否是一種好方法。 – Dusan 2014-10-08 09:04:30