页面重定向ASP.NET C#后不显示数据

时间:2013-09-21 18:30:17

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

我陷入了一个奇怪的情况,在ASP.NET中开发了一个简单的登录功能。有两个页面,LoginPage.aspxDefault.aspx。用户在登录页面上提供有效凭据后,他/她将被重定向到默认页面。我想在默认页面上显示用户登录信息,为此我添加了以下HTML:

<form id="Form1" runat="server">
<div id="demo_header" runat="server">

    <asp:Label ID="loggedinUsername" ForeColor="Black" runat="server"></asp:Label>
    <asp:LinkButton ID="logout" runat="server" Text="Logout!" ForeColor="Black" OnClick="Logout"></asp:LinkButton>
    ...
</div>
</form>

在Default.aspx.cs中:

protected void Page_Load(object sender, EventArgs e)
{
if (Session["LoggedinUser"] != null)
        {
            loggedinUsername.Text = "Welcome " + Session["LoggedinUser"].ToString() + " ";
            logout.Visible = true;
            demo_header.Visible = false;
        }
        else
        {
            logout.Visible = false;
            demo_header.Visible = true;
        }
}

以下是用户在LoginPage.aspx上按下Login按钮时执行的代码:

protected void LoginButton_Click(object sender, EventArgs e)
{
    if (LoginEmail.ToString() == string.Empty || LoginPassword.ToString() == string.Empty)
    {
        Session["RedirectReaasonFlag"] = "Credentials null";
        login_error_msg.Text = "Please Provide Email/Password!";
    }
    else 
    {
        UserStandard User = new UserStandard();
        User._Email = LoginEmail.Text;
        User._password = LoginPassword.Text;
        Dictionary<int, string> LoggedinUserData = User.AuthenticateUser(User);
        if (LoggedinUserData.Count == 1)
        {
            Session["LoggedinUserID"] = LoggedinUserData.ElementAt(0).Key;
            Session["LoggedinUser"] = LoggedinUserData.ElementAt(0).Value;
            Response.Redirect("Default.aspx");
        }
        else
            Session["RedirectReaasonFlag"]= "Invalid Login Attempt";
    }
}

但不知何故,当用户在默认页面上重定向时,其名称和注销超链接不会显示。这是一项非常简单的任务,这种情况正在吞噬我的大脑。请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:3)

看起来您的loggedinUsername标签和logout链接按钮位于您设置div的{​​{1}}内。因此,您告诉浏览器在登录成功时隐藏这些元素。请尝试设置Visible = false