2012-05-10 2 views
0

Я пытаюсь создать данные Driven меню в MVC 3. Так как я заканчиваю следующий код:Создать частичный вид в MVC 3

Модель:

#region MenuTree 
    public class MenuTree : BusinessObject 
    { 

     #region Constructor 
     public MenuTree() 
     { 

     } 
     #endregion 

     #region Property 
     #region ParentID 
     private int _nParentID; 
     public int ParentID 
     { 
      get { return _nParentID; } 
      set { _nParentID = value; } 
     } 
     #endregion 
     #region MenuName 
     private string _sMenuName; 
     public string MenuName 
     { 
      get { return _sMenuName; } 
      set { _sMenuName = value; } 
     } 
     #endregion 
     #region LinkText 
     private string _sLinkText; 
     public string LinkText 
     { 
      get { return _sLinkText; } 
      set { _sLinkText = value; } 
     } 
     #endregion 
     #region ActionName 
     private string _sActionName; 
     public string ActionName 
     { 
      get { return _sActionName; } 
      set { _sActionName = value; } 
     } 
     #endregion 
     #region ControllerName 
     private string _sControllerName; 
     public string ControllerName 
     { 
      get { return _sControllerName; } 
      set { _sControllerName = value; } 
     } 
     #endregion 
     #endregion 

     #region Functions 
     public MenuTree Get(int MenuTreeID) 
     { 
      return MenuTreeService.Instance.Get(new ID(MenuTreeID)); 
     } 

     public ID Save() 
     { 
      return MenuTreeService.Instance.Save(this); 
     } 
     public void Delete() 
     { 
      MenuTreeService.Instance.Delete(ID); 
     } 
     #endregion 
    } 

Контроллер часть:

public class TreeMenuController : Controller 
     { 
      // 
      // GET: /TreeMenu/ 

      public ActionResult Index() 
      { 
       return View(MenuTrees.Gets()); 
      } 

     } 



view : 



@model ESimSolMVC05.Models.MenuTrees 
@{ 
    ViewBag.Title = "Index"; 
} 


<table> 
    <thead> 
    <tr> 
     <th> ID </th> 
     <th> ParentID</th> 
     <th> Menu Name</th>  
    </tr> 
    </thead> 
    <tbody> 

    @foreach (ESimSolMVC05.Models.MenuTree item in Model) 
    { 
    <tr> 
     <td>@Html.DisplayFor(modelItem => item.ObjectID)</td> 
     <td>@Html.DisplayFor(modelItem => item.ParentID)</td> 
     <td>@Html.DisplayFor(modelItem => item.MenuName)</td>  
    </tr> 

    } 
</tbody> 
</table> 

затем я попытаюсь назвать свое мнение как частичное представление в _layout со следующим кодом:

@Html.Partial("~/Views/TreeMenu/index.cshtml") 

Но когда я запускаю свой проект, я получаю исключение

Мое сообщение об исключении: ссылка объекта не установлена ​​в экземпляр объекта.

Любой один предложить мне, что я могу назвать частичный вид

+0

Где определяется метод Gets? Что такое класс MenuTrees? –

+0

MenuTrees - это класс Collection, содержащий список MenuTree, который является мной Model. note: Если я хочу, чтобы мой взгляд выглядел как нормальный, он работает успешно. Но как частичное представление это не работает! –

+0

Какова модель основного вида, с которой вы называете этот Html.Partial? –

ответ

0
public PartialViewResult Index() 
{ 
    return PartialView(MenuTrees.Gets()); 
} 

использование:

@Html.Partial("Index","TreeMenu") 
+0

вернуть PartialView (MenuTrees.Gets()); правильно? – Timeless

+0

@null, да да .. – Mediator

0

Изменить Действие на

public ActionResult Index() 
{ 
    return PartialView(MenuTrees.Gets()); 
} 

В _layout странице

@Html.Action("Index","TreeMenu") 
Смежные вопросы