У меня есть Action
в Controller
:
[Route("")]
[Route("{pageNumber?}")]
[Route("tag/{tagSlug?}/{pageNumber?}")]
public async Task<IActionResult> Index(int? pageNumber, string tagSlug = null, string searchTerm = null)
{
var model = await repoPm_.GetPage(pageNumber, tagSlug, searchTerm);
return View(model);
}
Каждый элемент имеет список тегов, связанных с ним
@foreach (var t in item.Tags)
{
<a asp-action="Index" asp-route-tagSlug="@t.TagSlug" class="mr-3">@t.Name</a>
}
И на моей панели навигации у меня естьссылка на страницу, на которой я пробовал следующее:
<a asp-area="" asp-controller="Items" asp-action="Index" asp-route-tagSlug="">Items</a>
<a asp-area="" asp-controller="Items" asp-action="Index" asp-route-tagSlug="@null">Items</a>
<a asp-area="" asp-controller="Items" asp-action="Index">Items</a>
Когда я не на этой странице, ссылка на панели навигации указывает на /items/tag
, что раздражает, но работает.
Когда я нахожусь на этой странице и нажимаю на один из тегов, то URL в омнибаре является правильным, то есть /items/tag/fancy-items
Проблема заключается в том, что также генерируется URLдля ссылки в моем navbar, то есть /items/tag/fancy-items
, когда она должна быть просто /items
Что я делаю не так? Я не хочу связываться с маршрутизацией в Startup.cs
, похоже, <a asp-area="" asp-controller="Items" asp-action="Index">Items</a>
должно просто работать