Мне нужно отобразить меню в макете, используя частичный вид (если есть лучший подход, сообщите мне об этом). Я делаю это так (в макете):ASP.NET MVC Как использовать PartialView в макете?
@if (User.IsInRole("Admin"))
{
@Html.Partial("AdminMenu")
}
И это, как я называю это в контроллере:
public ActionResult AdminMenu()
{
var am = _amr.GetAdminMenu();
return PartialView(am);
}
Так вот мой частичный вид:
@model IEnumerable<DigitalHubOnlineStore.ViewModels.AdminMenuViewModel>
<div class="dropdown">
<button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
Admin menu
<span class="caret"></span>
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenu1">
@foreach (var item in Model)
{
<li><a href="@Html.DisplayFor(modelItem => item.MenuItemUrl)">@Html.DisplayFor(modelItem => item.MenuItemName)</a></li>
}
</ul>
</div>
К сожалению это не работает.
Вы ожидаете модель 'IEnumerable' в вашем парциальное пока вы не передавая ей что-нибудь? –
Если я открываю частичный вид напрямую, это рендеринг. Но не в макете. –
Вы хотите использовать '@ Html.RenderPartial (" AdminMenu ")' или '@ Html.RenderAction (" AdminMenu "," controller ")' –