我嘗試在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")
但是當我運行我的項目時,我得到一個異常
我的異常消息是:對象引用未設置爲對象的實例。
的任何一個建議我我我可以調用一個局部視圖
Gets方法定義在哪裏? MenuTrees課程是什麼? –
MenuTrees是Collection類,它包含一個MenuTree列表,它是我的Model。注意:如果我用我的視圖作爲普通視圖,而不是成功的。但作爲局部視圖,它不起作用! –
您稱之爲Html.Partial的主視圖的模型是什麼? –