Я пытаюсь динамически загружать меню навигации из базы данных. Я использую Entity Framework, чтобы вытащить данные. Я разместил меню в своем собственном частичном представлении, которое загружается в общий вид макета. Когда я запускаю приложение, он не работает до загрузки с ошибкой: «Исключение типа« Исключение System.NullReferenceException »произошло в App_Web_h02ter44.dll, но не было обработано в коде пользователя. Дополнительная информация: Ссылка на объект не установлена в экземпляр объекта «.MVC 5 Меню меню навигации не загружается при запуске приложения
Модель (NavigationMenuItem.cs)
using System;
using System.Collections.Generic;
public class NavigationMenuItem
{
public NavigationMenuItem()
{
this.NavigationMenuItems1 = new HashSet<NavigationMenuItem>();
}
public int MenuItemID { get; set; }
public Nullable<int> MenuItemParentID { get; set; }
public int MenuID { get; set; }
public string MenuItemName { get; set; }
public string MenuItemDescription { get; set; }
public string MenuItemText { get; set; }
}
Контроллер (NavigationMenuItemController.cs)
public class NavigationMenuItemController : Controller
{
private NorthwindEntityModel db = new NorthwindEntityModel();
// GET: /NavigationMenuItem/
public ActionResult Index()
{
var navigationmenuitems = db.NavigationMenuItems.Include(n => n.NavigationMenuItem1).Include(n => n.NavigationMenu);
return PartialView(navigationmenuitems.ToList());
}
}
_Layout.cshtml
<div class="col-md-4">
@Html.Partial("_NavigationBarPartial")
</div>
_NavigationBarPartial.cshtml
@model IEnumerable
@foreach (вар элемент в модели) { @ Html.DisplayFor (ModelItem => item.MenuItemText) }UPDATE
Обновление: Я создал папку внутри папки с именем View NavigationMenu Item с видом Index.cshtml внутри. Тот же код, что и файл _NavigationBarPartial.cshtml, указанный выше. Затем я изменил _layout Div тег к этому
<div class="col-md-4">
@Html.Action("Index", "NavigationMenuItem")
</div>
и теперь я потянув пункты меню из базы данных, как и ожидалось. Теперь мне нужно вернуться к использованию моего оригинального Shared/_NavigationBarBartial и заставить его работать, как индексный файл. Я, очевидно, что-то пропускаю, когда дело доходит до правильного вызова контроллера из общего частичного представления. Я не попал в точку останова в действии индекса на моем контроллере, если только я не использую мой новый индекс, чтобы загрузить его. Я думаю, что это связано с тем, использую ли я Html.Partial, Html.Action и т. Д., А затем параметры, которые мне нужно передать, чтобы заставить его вызвать правильный контроллер, но я не могу представить, что вне. Если кто-то может определить проблему, которая была бы замечательной.
Я очень ценю помощь !!!
Обновление: я создал папку внутри папки View с именем Item NavigationMenu с представлением Index.cshtml внутри. В этом представлении буквально содержится тот же код, что и файл _NavigationBarPartial.cshtml, указанный выше. Затем я изменил тег div_Layout на этот