У меня есть AdminController, который выглядит следующим образом:Url.Action не работает с маршрутами, указанными в контроллере с использованием маршрута аннотацию
AdminController [Route("admin")]
Index() (landing page for all administrative content)
UserIndex() - [Route("users")]
UserDetails() - [Route("users/details/{id}")]
RoleIndex() - [Route("roles")]
RoleDetails() - [Route("roles/details/{id}")]
Они равны следующие шаблоны URL:
администратора/пользователей
администратора/пользователей/детали/1
Однако, если я пытаюсь сделать следующее на мой взгляд, он не работает :
Url.Action("UserDetail", "Admin")
не должно быть достаточно умным для вывода: '/ admin/users/details'?
Он работает только, если я делаю Url.Action("Index", "Admin")
, так как с ним нет метки маршрута.
Update:
Я пытаюсь использовать Kendo Template Syntax с колонкой Кендо Сетка ClientTemplate:
columns.Bound(c => c.Id).ClientTemplate(
"<a href='" +
Url.Action("UserDetails", "Admin") +
"/#= Id #'" +
">Details</a>"
);
Ссылка для каждой строки заканчивается выглядеть так: «локальный: 9000/123 ' /admin/users/detail полностью игнорируется ...
А вот моя точная декларация методы я пытаюсь позвонить в AdminController:
// GET: Users/Details/5
[Route("users/details/{id}")]
public async Task<IActionResult> UserDetails(string id)
{
}
hmm Я верю, что вы что-то здесь. Вы можете увидеть обновление в нижней части моего сообщения? –
Я не знаком с этой структурой – Nkosi
Просто знайте, что # = Id # является заполнителем для Id строки в сетке. Я просто понял, что моя проблема была основана на вашем ответе. Дайте мне знать, если вы скажете мне, почему. Это работает: Url.Action («UserDetails», «Admin», new {id = "# = Id #"}) + "'" + "> Подробности", и ЭТО НЕ: Url.Action ("UserDetails", " «Admin») + «/ # = Id # '» –