如何访问asp.net中任何aspx页面的站点主导航菜单值

时间:2013-09-23 14:54:22

标签: c# asp.net

我正在使用默认的“Site.master”母版页开发网站。我想访问Site.master中导航菜单中可用的菜单项的值。例如“Home”和“About”导航菜单项的值。我是新人&需要一些帮助。

4 个答案:

答案 0 :(得分:0)

你需要施放。在基于母版页的页面中,执行以下操作:

var pro = (this.Master as YourMasterPageClassName).SomeInternalToMasterProperty;

答案 1 :(得分:0)

    Menu mn = (Menu)Master.FindControl("id_of_menu_control");
            foreach (MenuItem item in mn.Items)
            {
                string navigate = item.NavigateUrl;
/// Other stuffs you want to do
            }

答案 2 :(得分:0)

这就是我做的方式......

 Control allUsers = this.Page.Master.FindControl("login").FindControl("loginview").FindControl("ulmenu").FindControl("allUsers");

如果“管理员”登录,则上面用于我的页面加载。然后这就是我的site.master ...

<section runat="server" id="login">
                        <asp:LoginView id="loginview" runat="server" ViewStateMode="Enabled">
                            <LoggedInTemplate>
                                <p id="paragraph">
                                    Welcome,
                                    <asp:LoginName ID="loginName" runat="server" CssClass="username" />
                                    </a>!
                                <asp:LoginStatus runat="server" LogoutAction="Redirect" LogoutText="Log off" LogoutPageUrl="~/Account/Login.aspx" />
                                    <ul runat="server" id="ulmenu" class="menu">
                                        <li><a runat="server" href="~/Dashboard.aspx">Dashboard</a></li>
                                        <li><a runat="server" href="~/DeliveredDeals.aspx">Delivered Deals</a></li>
                                        <li><a runat="server" href="~/DealTracking.aspx">Deal Tracking</a></li>
                                        <li><a runat="server" id="allUsers" href="~/Account/Garage.aspx" visible="false">Garage</a></li>
                                    </ul>
                                </p>
                            </LoggedInTemplate>
                        </asp:LoginView>
                    </section>

如果你检查我的最后一个li,你想给它一个ID,这样你就可以找到它。我希望这有帮助!

答案 3 :(得分:0)

您可以按照以下方式执行此操作:

switch (e.Item.Value)
        {
             case "1":                        
               //code
                return;
            case "2":
               //code
                return;
            case "3":
                //code            
                return;