我想使用Html.ActionLink
返回带有href的锚标记,例如 / Product / 22 / Product-Name ,其中 Product 是我的控制器名称, 22 是我的ID,产品名称是我的头衔。
在我的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 控制器的 Index 操作返回的 Index 视图中正常工作。造成这种差异的原因是什么? 。我错过了什么,或者这是Asp.net MVC3中的一个错误。
如何实现我声明的网址格式。与此同时,我正在使用此代码
<a href="/Product/@product.Id/@product.Name.Replace(" ","-")">@product.Name</a>
答案 0 :(得分:3)
确保您已在默认路线之前定义了自定义路线并尝试
@Html.ActionLink(model.Name,
"Index",
new {controller="Product", id = model.Id, title = model.Name.Replace(" ","-") }, null)
第一个参数是DisplayName,第二个是ActionResult
的名称,然后是RouteValues