У меня проблемы с созданием ActionLink с использованием Preview 5. Все документы, которые я могу найти, описывают более старую универсальную версию.
Я строю ссылки на список вакансий на странице / вакансии. У каждой работы есть гид, и я хотел бы создать ссылку на / jobs / details / {guid}, чтобы я мог показать подробности о работе. У моего контроллера заданий есть контроллер индекса и контроллер деталей. Контроллер деталей берет гид. Я пробовал это
<%= Html.ActionLink(job.Name, "Details", job.JobId); %>
Однако, это дает мне URL "/ jobs / details". Что мне здесь не хватает?
Решено, с вашей помощью.
Маршрут (добавляется перед универсальным маршрутом):
routes.Add(new Route("Jobs/Details/{id}", new MvcRouteHandler())
{
Defaults = new RouteValueDictionary(new
{
controller = "Jobs",
action = "Details",
id = new Guid()
}
});
Действие ссылка:
<%= Html.ActionLink(job.Name, "Details", new { id = job.JobId }) %>
Результаты в html-привязке:
http://localhost:3570/WebsiteAdministration/Details?id=2db8cee5-3c56-4861-aae9-a34546ee2113
Итак, его запутанные маршруты. Я перенес определение маршрута работы перед администратором сайта, и теперь оно работает. Очевидно, мои определения маршрута сосут. Мне нужно прочитать больше примеров.
Примечание: мои ссылки не показывались, а быстрые часы не работали (не может быстро просмотреть выражение с анонимным типом), что усложнило понимание того, что здесь происходит. Оказалось, что ссылки действий не показывались из-за очень незначительной опечатки:
<% Html.ActionLink(job.Name, "Details", new { id = job.JobId })%>
Это заставит меня снова.