编程语言
首页 > 编程语言> > c# – MVC ActionLink将路由作为查询字符串而不是路由值附加

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