2013-12-24 154 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