Я работаю над сайтом ASP.NET mvc 3, который содержит несколько сущностей проекта, а затем у каждого проекта есть несколько связанных подстраниц, каждая из которых работает с компонентом проекта.
Так, например, у меня может быть проект с несколькими фотографиями, вехами, пользовательской информацией и т. Д. У меня есть представление «Индекс проекта», а также «Домашняя страница проекта», которая ссылается на несколько страниц компонентов. Большинство компонентов имеют два представления: «Индекс» и «Правка / Вид».
Итак, я настроил маршрут для правок и видов. Обратите внимание, что мой маршрут находится в области под названием ProjectManagement
context.MapRoute(
"ProjectManagement_ProjectPageSingle",
"ProjectManagement/{controller}/{action}/{projectNumber}/{projectChildId}",
new { controller = "Project", action = "Home" }
);
и действия моего контроллера выглядят примерно так:
public ActionResult Edit(string projectNumber, string projectChildId)
Это хорошо работает, когда я набираю URL прямо в браузере. Например:
~/ProjectManagement/Milestone/Edit/39999P110175/1
однако, когда я генерирую ссылку действия, используя:
<a href="@Url.Action("Edit", new { projectNumber = Model.Project.ProjectNumber, projectChildId = entry.Id})">
URL-адрес действия выглядит примерно так:
~/ProjectManagement/Milestone/Edit/39999P110175?projectChildId=1
Итак, маршрут работает ... но генератор ссылок действий не работает? Не уверен, куда идти отсюда. Любые советы будут высоко ценится.
Обратите внимание, что то же самое происходит при использовании @ Html.ActionLink вместо @ Url.Action.
Спасибо!