RedirectToAction被忽略

时间:2015-12-14 06:50:23

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

我正在使用ASP.NET 5.使用浏览器Chrome。

我的控制器具有以下操作方法

public async Task<IActionResult> Index()
{
    return View();
}

[HttpPost]
public IActionResult DoSomething()
{
    //do something
    return RedirectToAction("Index");
}

当我跑步时

  

http://localhost:59693/MyArea/MyController/DoSomething

通过索引中的POST

并在该行上设一个断点

 return RedirectToAction("Index");

它只是忽略该行并转到下一行而不调用Index操作方法。

并在浏览器中显示

  

http://localhost:59693/MyArea/MyController/DoSomething

屏幕空白。

当然,如果你有一个return语句,那么它会立即从该方法返回,并且不会跳转到下一行。真奇怪。

我甚至尝试了完整的

 return RedirectToAction("Index","MyController,new {area="MyArea"});

当我在我的索引操作方法上设置断点时,它永远不会被击中。

我甚至尝试过

 return Redirect("http://www.google.com");

仍显示

  

http://localhost:59693/MyArea/MyController/DoSomething

ASP.NET 5中的一些错误?

如果上述方法不起作用,如何从同一控制器中的动作方法调用动作方法?

1 个答案:

答案 0 :(得分:4)

我将DoSomething操作方法更改为异步并添加了await子句

[HttpPost]
public async Task<IActionResult> DoSomething()
{
    await _db.callsql();
    //do something start

    return RedirectToAction("Index");
}

这个问题似乎是因为actionmethod Index是异步的,DoSomething不是,而是我逐步完成代码。