我正在努力熟悉MVC环境。我想在我的默认母版页面上添加一个侧边菜单。但是我需要添加一个继承来获取我的数据。我可以这样做,或者我必须保留'Inherits =“System.Web.Mvc.ViewMasterPage”'?
<%@ Master Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %>
<body>
<div class="page">
<div id="header">
<div id="title">
<h1>My MVC Application</h1>
</div>
<div id="logindisplay">
<% Html.RenderPartial("LogOnUserControl"); %>
</div>
<div id="menucontainer">
<ul id="menu">
<li><%= Html.ActionLink("Home", "Index", "Home")%></li>
<li><%= Html.ActionLink("Summary", "Summary", "Home")%></li>
</ul>
</div>
</div>
<div id="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server">
<div id="categories">
<fieldset>
<% Html.RenderPartial("SideMenu", new ViewPage<DataLibrary.MenuOptions>().Model); %>
<!--I want to use ("SideMenu", Model) above -->
</fieldset>
</div>
</asp:ContentPlaceHolder>
<div id="footer">
</div>
</div>
</div>
答案 0 :(得分:2)
您不需要继承,我相信您只需要使用导入指令
,例如
<%@ Import Namespace="DataLibrary" %>
另外,我认为该行
<% Html.RenderPartial("SideMenu",
new ViewPage<DataLibrary.MenuOptions>().Model); %>
应该是
<% Html.RenderPartial("SideMenu", new MenuOptions()); %>
善,
丹
答案 1 :(得分:0)
您可以从主控制器继承所有控制器。
然后,在您的MainController中,您可以设置母版页中所需的所有数据(所有全局内容)
Public MustInherit Class ApplicationController
Inherits System.Web.Mvc.Controller
Sub New()
ViewData("SideMenu") = getSideMenu()
End Sub
End Class
稍后,在主页面
<% Html.RenderPartial("SideMenu", ViewData("SideMenu")); %>
还有其他方法可以做到这一点(这就是我这样做的方式),而在MVC 2.0中有一个新的选项来引用部分控制器。