我有FormController
Index
行动,SimpleController
行动CorticonIndex
。
我从CorticonIndex
行动重定向到Index
。我的问题是,我在返回RedirectToAction()
和CorticonIndex()
时设置了一个断点。
所以,只有我第一次能看到F11的执行,但是第二次控制器不会进入CorticonIndex()
。
RedirectToAction()
如何运作?
它只是一次执行还是我们可以执行多次?
的FormController
[HttpPost]
public ActionResult Index(FormCollection formCollection)
{
return RedirectToAction("CorticonIndex", " SimpleController");
}
SimpleController
public ActionResult CorticonIndex()
{
var viewModel = this.Model.GetViewModel(payLoad);
return View(CorticonResponseModel.viewName, viewModel);
}
答案 0 :(得分:0)
RedirectToAction()如何运作?
它向网站的浏览器发送HTTP 302响应以及Location
header。浏览器的功能取决于浏览器。通常,它会使用Location
标头向您的服务器提交另一个请求。但是,由于这完全取决于应用程序的控制,因此无法保证。
但在这种情况下,您最初使用HTTP POST调用服务器。如果您的浏览器使用HTTP GET重新加载页面,它将不会遇到相同的操作方法。如果您有一个名为Index
的HTTP GET操作方法,则会调用该方法。
注意:仅供参考 - 如果您删除
HttpPost
属性,您的操作方法将同时响应GET和POST。但这可能不是您问题的解决方案,因为在每种情况下都有一个单独的操作方法是正常的。