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重定向代码。 –