Asp.net-Mvc-2

你什麼時候使用 View() 與 RedirectToAction

  • April 25, 2011

這個現有的問題總結了我的問題的基礎。那裡的最佳答案說明了兩種方法之間的區別。我正在尋找有關使用哪種方法的指南。

簡而言之,我在控制器中有一個動作,它處理表單然後顯示處理結果。我應該什麼時候使用return View()而不是return RedirectToAction("FormResult")

你真的可以使用任何一個。不過,一般來說,在發布表單後,您希望重定向,以便刷新頁面不會導致表單重新發布。但是,有時將狀態復製到新頁面是不可行的,並且您的處理是冪等的,因此刷新不會造成任何損害。

這並不是說有一個硬性規定。你必須權衡利弊。

我敢說有一個硬性規定(盡可能多)—— Post/Redirect/Get (PRG) 模式。MVC 的標準(以及 html 助手實際上希望您使用這種模式)是:

  1. 發布您的數據。
  2. 如果有錯誤(即ModelState.IsValid=false),則return View()否則return RedirectResult

如果出現錯誤,HTML 幫助程序實際上會查看發布的值以重新顯示,而不是您傳遞它們的值View(model)- 再次因為 PRG 模式被“假定”是發生了什麼。

引用自:https://stackoverflow.com/questions/5775752