【问题标题】:MVC5 Routing IssueMVC5 路由问题
【发布时间】:2014-02-13 07:52:32
【问题描述】:

我正在重新设计一个网站,但在开始使用 MVC5 进行开发后,我得到的要求之一是保持当前 URL 结构不变。

网站已经全部设计好了,但我现在正在寻找一种方法来使用路由来构建这些 URL。

我看过很多解释标准的帖子和教程:

routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

还有一些细微的变化,比如:

{controller}/{action}/{name}

但没有人可以创建我试图保留的长文件夹密集结构。

(格式化编码)

[http://www.domain.com/menu/.Dessert....../.Ice-Cream......./.Flavor-Ice-Cream/]
[http://www.domain.com/menu/{categoryName}/{subCategoryName}/{productInThisSubCategory}]

有些也有更深的文件夹结构。

我确信有一种简单的方法可以做到这一点,但是....

【问题讨论】:

    标签: c# asp.net-mvc-routing


    【解决方案1】:

    使用属性路由。

    [HttpGet, Route("menu/{categoryName}/{subCategoryName}/{productName}")]
    public ActionResult Menu(string categoryName, string subCategoryName,
        string productName)
    {
        ...
    }
    

    属性路由是 MVC5 中的新功能,但基于流行的 AttributeRouting.NET 工具,该工具现已可用于 MVC4 及更低版本的项目有一段时间了。

    它允许您使路由定义更接近它所执行的操作,避免非常规路由的“上帝路由文件”模式。

    【讨论】:

    • 完美。谢谢您的帮助!保持真棒:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2014-11-24
    • 1970-01-01
    • 2016-05-23
    • 2017-03-26
    • 1970-01-01
    • 2018-09-30
    相关资源
    最近更新 更多