MVC5爲什麼我對MVS POST函數的調用跳過RedirectToAction?
這裏的實際問題是,我的代碼工作,我不明白爲什麼,這表明我可能會使用一種不好的做法。所以我想就此提出意見。這是我已經爲我的應用程序創建的代碼:
Function Method() As ActionResult
Dim viewModel As New aViewModel
// Code that sets up the View for a POST…
Return View(viewModel)
End Function
<HttpPost()>, <ActionNAme("Method")
<ValidateAntiForgeryToken()>
Function MethodDifferentName(<Bind(…)> ByVal parameter As Type1)
// Code that confirms the POST is valid and saves data …
Return RedirectToAction("<some action after the POST>", "<some controller>")
End Function
(注:當我最初編碼方法,參數列表是相同的POST方法,所以我不得不重新命名POST方法我不」我真的需要這些,但我已經包含了現在正在工作的內容,所以人們正在響應代碼,因爲它是)
當我創建種子方法時,原來MethodDifferentName(...)正是我想做的種子數據庫。因此,不是重複,我認爲代碼是不好的做法,我簡稱爲現有的功能如下:
Dim instance As New ControllerWithTheMethod
.
.
instance.MethodDifferentName(ParameterOfType1)
和它的作品,但我不知道爲什麼。我在幾個月前編寫了這個代碼,並且不記得有過這樣的想法。但是當我逐步通過種子代碼時,我注意到執行過程通過MethodDifferentName,它跳過了RedirectToAction()。這引起了我的注意。
我不明白它爲什麼會跳過RedirectToAction()。誰能解釋一下?
也許你需要添加作爲ActionResult第二種方法? –
我相信你可能會給我答案,但第一我覺得我可能會誤會;我對工作方式沒有任何問題。我實際上並不希望'RedirectToAction'實際上在第二種方法上運行,我只是不明白爲什麼它不是。但我相信你指出在第二種方法中,它不是'ActionResult'函數,所以RedirectToAction不起作用。這是你的觀點嗎? – Alan
那麼RedirectToAction不是一種會切換到另一個動作的方法。這是一個返回值,會導致發送到客戶端的http重定向代碼。 –