【问题标题】:How do I setup a route to capture all subsequent URL segments after the controller as a parameter?如何设置路由以捕获控制器之后的所有后续 URL 段作为参数?
【发布时间】:2013-06-25 12:31:25
【问题描述】:

我想设置以下形式的路由(例如在 HTTP 处理程序中)

控制器/ * / * / * /*(任意深度)

我是 MVC 路由的新手,但我想设置一个基本上类似的路由

MyController/{UrlSegments}

因此,例如 MyController/assets/images/logo.png 将转到 MyController 并将“assets/images/logo.png”作为参数传递给路由

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    如果您这样设置路线映射:

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{*stuff}",
        defaults: new { controller = "Default", action = "DefaultAction" }
    );
    

    然后当你点击

    /Default/one/two/three/four
    

    它将命中 DefaultController 上的 DefaultAction,您将需要一个名为 stuff 的字符串参数,其值为

    one/two/three/four
    

    【讨论】:

    • 路由应始终从应用程序的根目录运行,而不是网站的根目录,因此您无需更改任何内容即可使其从虚拟目录运行
    猜你喜欢
    • 1970-01-01
    • 2015-07-04
    • 2019-10-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2020-01-22
    相关资源
    最近更新 更多