Я пытаюсь динамически создать свою верхнюю панель навигации в ASP.NET MVC ядра 6.Создание динамических ссылок в панели навигации
Я знаю, что это просто, но я не могу понять, как заставить его работать. Вот что я делаю (упрощенно):
My Model:
public class IP_Category
{
public int id { get; set; }
public string DisplayName { get; set; }
}
в мой контроллер:
public IActionResult Index()
{
//This way I dynamically pass data to my View
ViewBag.Categories = _repository.ReturnCategories();
return View();
}
в моей cshtml
странице:
@{
//this info is in the top of the page, here I retrieve data passed from
//controller and save it as a local variable
var categories = (List<IP_Category>)ViewBag.Categories;
}
Тогда позже в _Layout, где я позабочусь о навигации:
<ul class="nav navbar-nav">
<li><a asp-controller="Home" asp-action="Index">Home</a></li>
<li><a asp-controller="Home" asp-action="About">About</a></li>
<li><a asp-controller="Home" asp-action="Contact">Contact</a></li>
@foreach (var category in categories)
{
<li><a asp-controller="Home" asp-action="@category.DisplayName">@category.DisplayName</a></li>
}
</ul>
Проблема возникает с asp-action="@category.DisplayName"
, которая не создает соответствующий href на моей фактической странице.
Итак, вопрос в том, что я делаю неправильно? Как передать category.DisplayName
в мой asp-action
тег, чтобы ссылки работали правильно?
Edit 1 - Добавление больше кода:
Вот что генерируется (обратите внимание на недостающую HREF тега)
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/Home/About">About</a></li>
<li><a href="/Home/Contact">Contact</a></li>
<li><a href="">Item1</a></li>
<li><a href="">Item2</a></li>
</ul>
Что это на самом деле генерации? –
Я обновил сообщение –
Я думаю, ваша проблема в http://stackoverflow.com/questions/38797393/asp-controller-and-asp-action-attributes-not-working –