【问题标题】:Calling method in MapRoute MVCMapRoute MVC中的调用方法
【发布时间】:2015-01-24 03:05:23
【问题描述】:

是否可以将“url”部分的参数传递给 MapRoute 的“default”部分中的方法?

routes.MapRoute(
               name: "Language",
               url: "{language}/{controller}/{action}/{id}-{description}",
               defaults: new { Controller = "Home", action = "Index", id = UrlParameter.Optional, language = UrlParameter.Optional, description = GetDescription(id) }
           );

我可以在没有任何参数的情况下调用 GetDescription(),但我不知道如何从 url 传递参数,即。获取描述(id)?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-routing maproute


    【解决方案1】:

    我认为您误解了路由定义的概念。您不能将动态行为添加到死记硬背的注册过程中,因为它仅在 application start event 上执行一次。当路由引擎在提供的 URL 中找不到合适的参数时,使用 defaults 参数。你想做什么在 url 生成级别上是可能的:

    @Html.ActionLink("Home", "Index", new { language = "en", id=5, description = "test" })
    

    【讨论】:

    • 我明白了,所以与其在路由中处理它,不如创建一个帮助器来为特定的 url 类型创建描述。
    • @mko 是的,你可以创建一个自定义助手
    • 我添加了一个与此相关的问题,也许你可以回答它。
    猜你喜欢
    • 1970-01-01
    • 2015-04-24
    • 2018-07-30
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多