我尝试在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的主视图的模型是什么? –