请有人解释为什么OnPost()有效,但OnPostAsync()无效。另一位post表示没有什么区别,但似乎有...
这有效
public async Task<IActionResult> OnPost()
{
LoggedInUser = await _userManager.GetUserAsync(User);
if (LoggedInUser == null)
SetPageStatusMsg("No user logged in");
else
SetPageStatusMsg($"{LoggedInUser.UserName} is logged-in");
return Page();
}
但这甚至没有被调用
public async Task<IActionResult> OnPostAsync()
{
LoggedInUser = await _userManager.GetUserAsync(User);
if (LoggedInUser == null)
SetPageStatusMsg("No user logged in");
else
SetPageStatusMsg($"{LoggedInUser.UserName} is logged-in");
return Page();
}
也许这是Core 2.2的事情,但是没有错误,因为我们从未在Core 2.2中犯过错误;-)
答案 0 :(得分:-1)
不能同时使用OnPostAsync和OnPost处理程序方法,如果尝试同时使用OnPostAsync和OnPost处理程序方法,则会发生以下错误:
处理请求时发生未处理的异常。 InvalidOperationException:多个处理程序匹配。以下处理程序匹配路由数据并满足所有约束:Microsoft.AspNetCore.Mvc.IActionResult OnPost(),System.Threading.Task'1 [Microsoft.AspNetCore.Mvc.IActionResult] OnPostAsync()
因此,要解决此问题,您可以使用一个OnPostAsync或OnPost。 这是更多信息:maintainer scripts