[ASP.NET MVC] URL網址路由包含「/」斜線

ASP.NET MVC 網址包含「/」斜線

筆者碰到一個狀況是,URL帶入的參數是可能有「/」斜線的(使用者輸入)像是以下

1.運作正常

http://localhost:45405/Home/Product?name=HTC/M8/手機套

 

2.運作正常

http://localhost:45405/Home/Product?name=『抗漲』白人牙膏_特大號

 

到目前為止都還沒問題,但我們為了讓URL好看以及優化SEO,我們會做URL Rewriting像是以下

   1: //商品
   2:            routes.MapRoute(
   3:               name: "Product",
   4:               url: "商品/{name}",
   5:               defaults: new { controller = "Home", action = "Product", name = UrlParameter.Optional });

 

1.錯誤

http://localhost:45405/商品/HTC/M8/手機套

未命名

 

2.運作正常

http://localhost:45405/商品/『抗漲』白人牙膏_特大號

 

這時候我們在路由name前方加個*就可以了。

   1: //商品
   2:             routes.MapRoute(
   3:                name: "Product",
   4:                url: "商品/{*name}",
   5:                defaults: new { controller = "Home", action = "Product", name = UrlParameter.Optional });

 

 

 

 


如有錯誤還請各位先進前輩們不吝嗇的指教,謝謝。