Asp.net core 从ASP.NET Core 2.2迁移到3.1,出现错误404
从ASP.NET Core 2.2迁移到3.1后,发送表单时出现错误404:Asp.net core 从ASP.NET Core 2.2迁移到3.1,出现错误404,asp.net-core,asp.net-core-3.1,Asp.net Core,Asp.net Core 3.1,从ASP.NET Core 2.2迁移到3.1后,发送表单时出现错误404: <form id="SpecialShowCreateForm" method="post" asp-controller="SpecialShow" asp-action="CreateSpecialShowAsync" r
<form id="SpecialShowCreateForm" method="post"
asp-controller="SpecialShow"
asp-action="CreateSpecialShowAsync"
role="form"
data-ajax="true" ,
enctype="multipart/form-data"
<div class="form-group">
<input asp-for="Caption" >
</div>
</form>
[HttpPost]
[AjaxOnly]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateSpecialShowAsync([FromForm]SpecialShowViewModel vm)
{
return Json(new { msg = ok });
}
选项
.UseSqlServer(Configuration.GetConnectionString(“Shop”));
services.AddMvc();
services.AddAntiforgery(o=>o.HeaderName=“XSRF-TOKEN”);
services.AddMemoryCache();
services.AddSession();
services.AddOptions();
}
公共void配置(IApplicationBuilder应用程序)
{
app.UseRouting();
app.UseEndpoints(端点=>
{
endpoints.MapControllers();
endpoints.MapAreaControllerRoute(
“管理员”,
“管理员”,
“Admin/{controller=Default}/{action=Index}/{id?}”);
endpoints.MapControllerRoute(
“默认值”、“{controller=Home}/{action=Index}/{id?}”);
});
}
我找到了答案
问题是命名动作,我删除了Async,问题就解决了!!!
这很奇怪
[HttpPost]
[AjaxOnly]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateSpecialShow([FromForm]SpecialShowViewModel vm)
{
return Json(new { msg = ok });
}
[HttpPost]
[仅限AjaxOnly]
[ValidateAntiForgeryToken]
公共异步任务CreateSpecialShow([FromForm]SpecialShowViewModel vm)
{
返回Json(新的{msg=ok});
}
你能发布你的Startup.cs
文件吗?@Ali:在你的问题中编辑Startup.cs。此处不接受指向代码的链接。@IANKEP:已更新
[HttpPost]
[AjaxOnly]
[ValidateAntiForgeryToken]
public async Task<ActionResult> CreateSpecialShow([FromForm]SpecialShowViewModel vm)
{
return Json(new { msg = ok });
}