【问题标题】:How to add a route to MVC3 converting part the URL to an argument?如何将路由添加到 MVC3 将部分 URL 转换为参数?
【发布时间】:2014-03-09 09:03:53
【问题描述】:

如何添加一个路由来捕获指向控制器的所有 URL,以便控制器名称之后的所有参数都转换为单个参数字符串?

我需要这种映射:

URL /Image/foo.png     -> Controller: Image, Action: Index, argument "foo.png"
URL /Image/A/foo.png   -> Controller: Image, Action: Index, argument "/A/foo.png"
URL /Image/A/B/foo.png -> Controller: Image, Action: Index, argument "/A/B/bar.png"

这是我在ImageController里面的操作

public ImageResult Index(string file)
{
    // foo bar
}

这是我尝试过的

routes.MapRoute(null, "Image/{file*}", new { controller = "Image", action = "Index" });

URL /Image/baz.png 有效,文件是“baz.png”。 URL /Image/A/foo.png 不起作用,我的操作没有命中。

【问题讨论】:

    标签: asp.net asp.net-mvc-3 routes global-asax


    【解决方案1】:

    你很亲密。应该是

    "Image/{*file}"
    

    这样file 将在Image/ 之后的URL 中包含所有内容。

    【讨论】:

    • 太棒了,谢谢。当我可以通过一个字符提交来解决问题时,我喜欢它:D。
    猜你喜欢
    • 2012-06-29
    • 2018-06-16
    • 2011-05-05
    • 2015-01-25
    • 2016-01-22
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多