2014-10-08 37 views
1

我正在構建MVC 4應用程序。 授權和異常處理使用過濾器完成。MVC 4過濾結果 - 重定向還是查看?

在過濾器,我可以重定向用戶使用使用ViewResult我的錯誤頁面的RedirectToRouteResult返回查看我的錯誤頁面。

哪個變體在實踐中更好,爲什麼?

+0

我曾經重定向到行動 – 2014-10-08 09:03:07

+0

目前,我正在重定向到行動(通過路線),但我不確定這是否是一種好方法。 – Dusan 2014-10-08 09:04:30

回答

2

1.Return View不會提出新的請求,它只是呈現視圖而不會更改瀏覽器地址欄中的URL。

2.返回RedirectToAction使瀏覽器地址欄中的新請求和URL使用MVC生成的URL進行更新。

3.返回重定向也使得在瀏覽器的地址欄中顯示的新要求和URL被更新,但你必須指定完整的URL重定向

4.Between RedirectToAction和重定向,最好的做法是使用RedirectToAction用於處理應用程序操作/控制器的任何事情。如果您使用重定向並提供URL,則當您更改路由表時,您需要手動修改這些URL。

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

1

如果您想在帶有限信息的靜態數據的錯誤頁面上移動,請使用ViewResult,否則使用RedirectToRouteResult,您可以隨意使用它。

1

這取決於在填充視圖模型的錯誤操作中是否有任何邏輯(例如,設置http狀態碼)或者您只有靜態視圖。當然,您可以將此邏輯移至過濾器,但這會阻止您從另一個不使用相同過濾器的操作重定向。