具有自定义URL的MVC Route ASP.NET

时间:2014-03-02 12:46:47

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

我的旧asp.net页面有这种URL

本地主机/产品/这-IS-的-NAME的最产品/ Item123.aspx

其中产品ID为123,我将获取然后将其传递给路由引擎以从数据库中获取正确的数据然后显示页面。

localhost / Product / This-The-Name-Of-The-Product / Item456.aspx

将获得456的产品ID。

我正在重写MVC中的网站,我想知道是否有人可以告诉我如何做一个路由以便它可以向后兼容并且localhost / Product / This -The-The-Name-Of-The-产品/ Item123.aspx会去 本地主机/产品/ 123

我正在使用MVC 5 BTW。

1 个答案:

答案 0 :(得分:0)

你可以一起使用2条路线:

routes.MapRoute( //for localhost/Product/This-Is-The-Name-Of-The-Product/Item456.aspx
            name: "",
            url: "Product/{ProductName}/item{id}.aspx",
            defaults: new { controller = "Product", action = "Index", id= UrlParameter.Optional }
        );

        routes.MapRoute( //this url for localhost/Product/123
            name: "",
            url: "Product/{id}",
            defaults: new { controller = "Product", action = "Index", id = UrlParameter.Optional }
        );