У меня есть контроллер ниже с указанным маршрутом, который содержит параметры, соответствующие перегрузке действия.Создать URL-адрес в Razor View для атрибута Маршрут, содержащий параметры
public class OrganisationsController : Controller
{
[HttpGet]
[Route("organisations/{id}/employees")]
public ActionResult Employees(int id)
{
// Some code here
}
}
Я пытаюсь создать URL в Razor View с помощью @Html.ActionLink
соответствовать маршруту, указанному на контроллере, например localhost:55416/Organisations/2/Employees
, но я не смог заставить его работать.
Ближайшим, что я смог получить, является localhost:55416/Organisations/Employees/2
, который не работает в качестве неправильного маршрута, или localhost:55416/Organisations/Employees?id=2
, который фактически работает как действие сотрудников в контроллере Организации, но тогда это всего лишь строка запроса, тогда что отрицает цель добавления маршрута [Route("organisations/{id}/employees")]
в первую очередь.
Все примеры и сообщения, которые я смог найти в interwebs, касаются параметра, находящегося в конце, например [Route("organisations/employees/{id}")]
, а не между контроллером и действием.
Я не беспокоился, пытаясь добавить собственный маршрут к RouteConfig
, поскольку, на мой взгляд, URL-адрес является начальной точкой, которая должна быть правильной в первую очередь в соответствии с Маршрутом, указанным на контроллере, или я здесь не прав?
Есть ли способ создать URL-адрес так, как я хочу, чтобы он использовал ActionLink
, или есть ли другой способ, который мне нужно сделать?
Вы пробовали '@ Html.ActionLink ("MyLink", "Сотрудники", "Организации", новый {ID = 2}, NULL)' –
@ Сэм, привет, да я, при использовании ' @ Html.ActionLink («Сотрудники», «Сотрудники», «Организации», новый {id = item.Id}, null) 'Я получаю URL-адрес localhost: 55416/Организации/Сотрудники/2. – user3706626
Не могли бы вы представить свой класс 'RouteConfig'? –