2013-12-24 232 views
0

默认asp.net-mvc4的URL改写为http://domainname.com/products/1与路线在asp.net-mvc4(剃刀)与extention

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

,我想重写http://domainname.com/products/1.html有html的推广。 对此有何想法?

+1

你为什么要这么做?你没有在这里处理文件。 –

+0

我不想这样做,但这是顾客的想法 – TienKenji

回答

0

你的意思是这样的:

routes.MapRoute(
    name: "Products", 
    url: "{controller}/{action}/{id}.html", 
    defaults: new { controller = "Products", action = "Index", id = UrlParameter.Optional } 
); 
+0

我不知道,可能是。但是,如果ID参数为null,则URL将为'code:http://domainname.com/product/.html',不对 – TienKenji

+1

是的,我认为您应该制定一条单独的路线来处理这种情况。 – Marthijn

+0

谢谢你的建议,让我试试这样做 – TienKenji

0

为什么你会想要把.html扩展到查询字符串或路由参数?

如果你带一个带有html文件的网站,那么扩展名是带有不带参数的页面。不知道你是否有任何具体的要求,总是把它放在网址的末尾。但它没有任何意义。

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

在完成上述操作后,您可能会遇到iis问题,请参阅此讨论。 ASP.NET MVC Routing - add .html extension to routes

+0

谢谢你的建议,但它不工作 – TienKenji