我想使用类似/Product/22/Product-NameHtml.ActionLink
的 href 来返回锚标记,其中Product是我的控制器名称,22是我的 id,Product-Name是我的标题。
在我的 global.asax 中,我设置了以下路线:
routes.MapRoute(
"ProductRoute", // Route name
"Product/{id}/{title}", // URL with parameters
new { controller = "Product", action = "Index", id = UrlParameter.Optional });
我尝试使用以下代码
@Html.ActionLink(model.Name, null, "Product",
new { id = model.Id, title = model.Name.Replace(" ","-") }, null)
但它产生Product/Browse/22?title=Product-Name。此代码位于目录控制器的浏览操作返回的浏览视图中,这就是它在两者之间选择浏览的原因。
奇怪的是,相同的代码在Home Controller的Index操作返回的Index View中运行良好。造成这种差异的原因是什么?. 我是否遗漏了什么,或者这是 Asp.net MVC3 中的一个错误。
我应该怎么做才能实现我声明的 URL 格式。与此同时,我正在使用这段代码
<a href="/Product/@product.Id/@product.Name.Replace(" ","-")">@product.Name</a>