2015-05-22 169 views
0

我希望我的產品的展示網址看起來應該像asp.net的MVC 4路由短網址

http://example.com/Black-TShirt 

但目前我所得到的是一樣網址

http://example.com/controller/actionname/2/Black-TShirt 

我應該怎麼寫以下代碼?

routes.MapRoute(
       name: "productview", 
       url: "{controller}/{actionname}/{id}/{productname}", 
       defaults: new { controller = "product", action = "display", id = UrlParameter.Optional } 
      ); 
+0

那你試試這麼遠嗎? – Med

+0

你需要URL中的產品ID嗎? – KevDevMan

回答

0

要做到這一點,你需要productname成爲url中唯一提供的參數!請參見下面的代碼

routes.MapRoute(
      name: "productview", 
      url: "{productname}", 
      defaults: new { controller = "product", action = "display"} 
     ); 

而且你的控制器動作必須是(像)

public ActionResult Display(string productname){ 
     var product=Service.GetProductByName(productname); 
     return View(product); 
    } 

請注意,我用action沒有actionname路線