问题描述:
在ASP.NET Core 2.2中,使用asp-all-route-data
标记来添加路由数据到URL中时,可能会发现该标记不起作用。
解决方法:
asp-all-route-data
时,URL中包含了路由参数。比如下面的代码片段中,id
参数是必需的:Link
asp-all-route-data
时,路由参数的名称与目标路由的参数名称完全一致。比如下面的代码片段中,id
参数的名称必须与目标路由中的参数名称相同:[Route("home/details/{id}")]
public IActionResult Details(int id)
{
// Code here
}
asp-all-route-data
时,目标路由已经正确地定义在Startup.cs
文件中。比如下面的代码片段中,Details
路由已经正确地定义在UseMvc
方法中:app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
routes.MapRoute(
name: "details",
template: "{controller=Home}/{action=Details}/{id?}");
});
id
:Link
通过检查以上几个解决方法,可以解决ASP.NET Core 2.2中asp-all-route-data
不起作用的问题。