2015-05-22 143 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路线