В моем проекте MVC5 я хочу создать меню в частичном представлении. Это меню является динамическим в том смысле, что оно построено из содержимого в моей базе данных. Таким образом, у меня есть контроллер, который заботится о создании моего меню и возвращении модели меню в мой частичный вид:
public PartialViewResult GetMenu()
{
MenuStructuredModel menuStructuredModel = menuBusiness.GetStructuredMenu();
return PartialView("~/Views/Shared/MenuPartial", menuStructuredModel);
}
В моем частичном представлении называется MenuPartial. Я хочу использовать бритву, чтобы перебирать элементы меню, например:
@model MyApp.Models.Menu.MenuStructuredModel
<div class="list-group panel">
@foreach (var category in Model.ViewTypes[0].Categories)
{
<a href="#" class="list-group-item lg-green" data-parent="#MainMenu">@category.ShownName</a>
}
</div>
Теперь проблема заключается в представлении, в котором я вставляю частичный вид. Если в представлении я просто делаю:
@Html.Partial("MenuPartial")
Он не будет вызывать контроллер, чтобы сначала заполнить модель данными. Я хочу, чтобы контроллер возвращал частичное. Но я не знаю, как это сделать с точки зрения. В псевдокоде я хотел бы сделать что-то вроде:
@Html.RenderPartialFromController("/MyController/GetMenu")