asp.net mvc 4路由为简短的网址

时间:2015-05-22 11:25:15

标签: asp.net-mvc-4 routing

我希望我的产品展示网址看起来像

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 } 
            );

1 个答案:

答案 0 :(得分:0)

要做到这一点,您需要productname成为网址中唯一提供的参数!请参阅以下代码

 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作为路径