繁体   English   中英

我可以在我的Site.Master页面MVC上继承一些东西吗?

[英]Can I Inherit something on my Site.Master page MVC?

我正在努力熟悉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>

你不需要继承,我相信你只需要使用一个import指令

<%@ Import Namespace="DataLibrary" %>

另外,我认为这一行

<% Html.RenderPartial("SideMenu", 
                      new ViewPage<DataLibrary.MenuOptions>().Model); %>

应该

<% Html.RenderPartial("SideMenu", new MenuOptions()); %>

善良,

您可以从主控制器继承所有控制器。

然后,在您的MainController中,您可以设置母版页中所需的所有数据(所有全局事物)

Public MustInherit Class ApplicationController
    Inherits System.Web.Mvc.Controller

    Sub New()
        ViewData("SideMenu") = getSideMenu()
    End Sub

End Class

之后,在Master页面中

<% Html.RenderPartial("SideMenu", ViewData("SideMenu")); %>

还有其他方法可以做到这一点(这就是我这样做的方式),而在MVC 2.0中有一个新选项来引用局部中的控制器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM