【问题标题】:When menu visibility is turned off I can't see another pages content当菜单可见性关闭时,我看不到其他页面内容
【发布时间】:2013-06-22 19:04:29
【问题描述】:

我有一个包含以下代码的母版页:

<body>
    <form id="form1" runat="server">
    <!-- BEGIN: Sticky Header -->
    <div id="header_container">
        <div id="header">
            <div id="headerBar">
                <a href="<% = Page.ResolveUrl("~/default.aspx") %>">
                    <img src="<% = Page.ResolveUrl("~/images/logo.png") %>" id="logo" /></a> <span id="header_text">
                        Scrum Reports</span>
                <asp:LoginStatus ID="LoginStatus1" runat="server" CssClass="login_status" LogoutAction="Redirect"
                    LogoutPageUrl="~/default.aspx" />
                <asp:LoginName ID="LoginName1" runat="server" CssClass="login_user" />
            </div>
        </div>
    </div>
    <div id="menuBar">
        <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2"
            Orientation="Horizontal" >
        </asp:Menu>
        <asp:SiteMapDataSource ID="SiteMapDataSource1"  SiteMapProvider="admin" runat="server" />
        <asp:SiteMapDataSource ID="SiteMapDataSource2"  SiteMapProvider="user" runat="server" />
    </div>
    <!-- END: Sticky Header -->
    <!-- BEGIN: Page Content -->
    <div id="mainContent">
        <div id="container">
            <div id="content">
                <asp:ContentPlaceHolder ID="Main" runat="server">
                </asp:ContentPlaceHolder>
            </div>
        </div>
    </div>
    <!-- END: Page Content -->
    <!-- BEGIN: Sticky Footer -->
    <div id="footer_container">
        <div id="footer">
            Developed by Application Solutions
        </div>
    </div>
    <!-- END: Sticky Footer -->
    </form>
</body>

现在我使用以下 C#(作为母版页 Page_Load 方法的一部分)根据用户是否登录来显示或隐藏站点菜单:

Menu1.Visible = Page.User.Identity.IsAuthenticated;

由于某种原因,这行代码会阻止用户未登录时在其他页面上看到内容。

<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/master/template.master" CodeFile="recoverpassword.aspx.cs" Inherits="password_recoverpassword" %>

<asp:Content ID="Content1" Visible="true" ContentPlaceHolderID="Main" runat="Server">
    <div>
    Cant see this content when not logged in.
    </div>
</asp:Content>

为什么会这样?我能做些什么呢?

【问题讨论】:

  • recoverpassword.aspx.cs 的代码隐藏是什么?
  • 文件为空。我没有添加任何代码。
  • 也许你在某处有这样的代码(错字):“Main.Visible = Page.User.Identity.IsAuthenticated;”
  • 我已经检查过了,事实上如果我把 Main.Visible = true;直接在 Menu1.Visible = Page.User.Identity.IsAuthenticated 之后;我有同样的结果。

标签: c# html asp.net visual-studio


【解决方案1】:

以上代码:

Menu1.DataBind();

导致了这个问题。当我删除它时,它修复了它,其他一切都继续正常工作。

【讨论】:

  • 哦,你是说你没有展示的那部分?缺少信息使诊断变得困难。大声笑很高兴你想通了!
猜你喜欢
  • 2012-12-19
  • 2022-10-05
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2021-01-01
  • 2018-09-29
  • 1970-01-01
相关资源
最近更新 更多