0

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")

しかし、プロジェクトを実行すると例外が発生します

私の例外メッセージは次のとおりです:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

誰かが私に提案します私は部分的なビューと呼ぶことができます

4

2 に答える 2

0

アクションを次のように変更

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

In _layout ページ

@Html.Action("Index","TreeMenu")
于 2012-05-10T09:00:22.077 に答える
0
public PartialViewResult Index()
{
     return PartialView(MenuTrees.Gets());
}

使用する:

@Html.Partial("Index","TreeMenu")
于 2012-05-10T08:16:31.603 に答える