【问题标题】:Customizing the url-from-parameters lookup in asp.net mvc在 asp.net mvc 中自定义 url-from-parameters 查找
【发布时间】:2010-02-04 01:24:04
【问题描述】:

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

routes.MapRoute("MyRoute", "TheUrl", new { controller = "MyController", action = "MyAction" });

然后我可以使用UrlHelper.Action("MyAction", "MyController") 之类的参数进行反向查找,它会返回一个不错的网址,例如~/TheUrl

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

【问题讨论】:

    标签: asp.net-mvc routing


    【解决方案1】:

    我认为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。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2014-04-11
    • 2013-07-24
    • 2015-02-01
    相关资源
    最近更新 更多