RedirectAction问题

时间:2016-07-12 11:41:38

标签: asp.net asp.net-mvc asp.net-mvc-4

我有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);
}

1 个答案:

答案 0 :(得分:0)

  

RedirectToAction()如何运作?

它向网站的浏览器发送HTTP 302响应以及Location header。浏览器的功能取决于浏览器。通常,它会使用Location标头向您的服务器提交另一个请求。但是,由于这完全取决于应用程序的控制,因此无法保证。

但在这种情况下,您最初使用HTTP POST调用服务器。如果您的浏览器使用HTTP GET重新加载页面,它将不会遇到相同的操作方法。如果您有一个名为Index的HTTP GET操作方法,则会调用该方法。

  

注意:仅供参考 - 如果您删除HttpPost属性,您的操作方法将同时响应GET和POST。但这可能不是您问题的解决方案,因为在每种情况下都有一个单独的操作方法是正常的。