Я хотел использовать MVC и renderpartial для создания меню, но не смог заставить его работать, и из того, что я прочитал, казалось, что RenderAction будет более подходящим.Тем не менее я не получил его на работу.
То, что я намеревался сделать, это создать контроллер, который выбирает определенные статьи из базы данных, которые будут действовать как категории (это помещено в HomeController):
public ActionResult MenuController()
{
var movies = from m in db.Art
where m.ArtikelNr.StartsWith("Webcat")
select m;
return View(movies);
}
И затем отправлять эту информациюпредставление:
@model IEnumerable<xxxx.Models.Art>
@{
Layout = null;
}
<ul>
@foreach (var item in Model)
{
<li>@Html.DisplayFor(modelItem => item.Benämning_10)</li>
}
Это работает, когда я просто запускаю его как обычный контроллер и просмотр, он возвращает список того, что я хочу.Но если я хочу вызвать его из _layout.cshtml (потому что это меню должно появляться на каждой странице) следующим образом:
<div id="sidebar">@Html.RenderAction(MenuController)</div>
, тогда он выдаст следующую ошибку:
CS0103: The name 'MenuController' does not exist in the current context
Чтоправильный способ вызвать действие / представление / что-либо из файла _layout.cshtml?