在ASP.NET Core 6 MVC中,可能会遇到一个问题,即在使用命名路由时,action参数没有正确地通过路由传递。这可能是因为命名路由中没有指定参数名称,或者在创建链接时没有正确地指定参数名称。
要解决这个问题,首先要确保在命名路由中指定了参数名称。例如,如果我们有一个带有两个参数的命名路由,我们应该这样定义它:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "myRoute",
pattern: "MyController/MyAction/{param1}/{param2}",
defaults: new { controller = "MyController", action = "MyAction" });
});
在这个例子中,我们明确指定了参数名称“param1”和“param2”。
接下来,我们需要确保在创建链接时正确地指定这些参数名称。例如:
Link to MyAction
在这个例子中,我们使用了“asp-route-param1”和“asp-route-param2”来指定参数名称,以确保参数正确地通过路由传递。
总之,确保在命名路由中指定参数名称,并在创建链接时正确地指定这些参数名称,将确保您的ASP.NET Core 6 MVC应用程序正确地通过路由传递action参数。