Я хочу использовать Html.ActionLink
для возврата тега привязки с href, например / Product / 22 / Product-Name , где Product - это имя моего контроллера, а 22 - мой идентификатор, а 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 . Этот код находится в Просмотр Просмотр, возвращаемый Просмотр действие контроллера Каталог , и поэтому он выбирает Просмотр между ними.
Как ни странно, тот же код прекрасно работает в Index View, возвращаемом действием Index контроллера Home . В чем причина этой разницы? , Я что-то упустил или это ошибка в Asp.net MVC3.
Что я должен сделать, чтобы достичь моего заявленного формата URL. А пока я использую этот код
<a href="/Product/@product.Id/@product.Name.Replace(" ","-")">@product.Name</a>