我希望我的产品展示网址看起来像
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 :(得分: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
作为路径