c# – MVC ActionLink将路由作为查询字符串而不是路由值附加
作者:互联网
我有一个MVC动作链接:
@Html.ActionLink("Update Information", "Index", "Performance",
new { performanceid = item.PerformanceId }, null)
此操作链接的href如下所示:/ Performance / Index?performanceid = 100
在我的RouteConfig.cs中,我按以下顺序拥有以下路由:
routes.MapRoute(
"ShowPerformanceOptions",
"Performance/{performanceid}/Index",
new { controller = "Peformance", action = "Index" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我不希望在URL的末尾添加查询字符串,我希望URL看起来像这样:/ Performance / 360 / Index
我经历了各种不同的选择,包括添加路由参数和可选的url参数,以及改变我编写ActionLink的方式.似乎没什么用.
任何人的想法?
解决方法:
要根据路由名称生成URL,请使用Html.RouteLink()
方法
@Html.RouteLink("Update Information", "ShowPerformanceOptions", new { performanceid = item.PerformanceId })
好读What’s the difference between RouteLink and ActionLink in ASP.NET MVC?
标签:c,asp-net,asp-net-mvc,asp-net-mvc-routing,actionlink 来源: https://codeday.me/bug/20190623/1273082.html