Asp.net mvc 从asp.net mvc中的参数查找自定义url

Asp.net mvc 从asp.net mvc中的参数查找自定义url,asp.net-mvc,routing,Asp.net Mvc,Routing,我有一条由代码添加的路线 routes.MapRoute("MyRoute", "TheUrl", new { controller = "MyController", action = "MyAction" }); 然后我可以使用UrlHelper.ActionMyAction、MyController等参数进行反向查找,它将返回一个很好的url,如~/TheUrl 但是,对于这个路由,我希望生成的URL是~/TheUrl?p=2354,参数是一些版本控制参数。有没有一种方法可以通过使用一些

我有一条由代码添加的路线

routes.MapRoute("MyRoute", "TheUrl", new { controller = "MyController", action = "MyAction" });
然后我可以使用UrlHelper.ActionMyAction、MyController等参数进行反向查找,它将返回一个很好的url,如~/TheUrl


但是,对于这个路由,我希望生成的URL是~/TheUrl?p=2354,参数是一些版本控制参数。有没有一种方法可以通过使用一些定制的路由处理程序或其他东西来映射路由?版本控制参数将是非标准的,每次查找Url时都需要执行一些自定义代码。

我认为UrlHelper扩展方法在这里最理想、最简单

public string MyRoute(this UrlHelper url)
{
     string versionNumber = GetVersionNumber();  // or w/e is required to get it
     return Url.Action("MyAction", "MyController") + "?p=" + versionNumber;
}   
这将使在html中调用该路由更加容易

<%= Url.MyRoute() %>

是的,但是如果有人使用Html.ActionLink来呈现Url呢?您可以为该特定路由实现另一个Html扩展方法。我不知道如何直接编辑特定路由配置的Html.ActionLink或Url.Action生成的任何Url。