我正在使用ASP.NET 5.使用浏览器Chrome。
我的控制器具有以下操作方法
public async Task<IActionResult> Index()
{
return View();
}
[HttpPost]
public IActionResult DoSomething()
{
//do something
return RedirectToAction("Index");
}
当我跑步时
通过索引中的POST
并在该行上设一个断点
return RedirectToAction("Index");
它只是忽略该行并转到下一行而不调用Index操作方法。
并在浏览器中显示
屏幕空白。
当然,如果你有一个return语句,那么它会立即从该方法返回,并且不会跳转到下一行。真奇怪。
我甚至尝试了完整的
return RedirectToAction("Index","MyController,new {area="MyArea"});
当我在我的索引操作方法上设置断点时,它永远不会被击中。
我甚至尝试过
return Redirect("http://www.google.com");
仍显示
ASP.NET 5中的一些错误?
如果上述方法不起作用,如何从同一控制器中的动作方法调用动作方法?
答案 0 :(得分:4)
我将DoSomething操作方法更改为异步并添加了await子句
[HttpPost]
public async Task<IActionResult> DoSomething()
{
await _db.callsql();
//do something start
return RedirectToAction("Index");
}
这个问题似乎是因为actionmethod Index
是异步的,DoSomething
不是,而是我逐步完成代码。