如果ASP.NET Core 2.1 Razor表单的Post请求无法到达控制器,可能是因为路由配置不正确或者表单提交的数据类型与控制器方法参数类型不匹配。以下是可能的解决方法:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
在Configure方法中添加以下代码:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
检查表单提交的数据类型与控制器方法参数类型是否匹配。例如,如果表单提交的数据是一个字符串,那么控制器方法参数应该是一个字符串类型的参数。确保参数名称与表单中的输入字段名称相匹配。
在控制器方法中添加[HttpPost]特性,以确保只有Post请求可以访问该方法。例如:
[HttpPost]
public IActionResult MyAction(string formData)
{
// 处理表单数据
return View();
}
/Home/MyAction
,那么表单中的action属性应该是/Home/MyAction
。希望这些解决方法可以帮助你解决问题。如果问题仍然存在,请提供更多的代码示例和详细的错误信息,以便更好地帮助你解决问题。