根据会话/状态变量动态更改标签

时间:2019-04-10 06:57:09

标签: c# asp.net

我希望能够根据用户是否登录来动态更改页面上的链接。

因此,当用户首次加载时,在主页上,他们可以单击链接登录页面,并将其定向到该页面登录。登录后,id就像要将文本更改为“注销”一样,目前可以做到。但是,当用户单击相同的链接时,会将他们带到登录页面。我希望此链接根据我的会话变量是否已登录而更改。

因此,一旦用户登录并重新定向到主页,下面的代码将为我更改文本。当他们再次单击登录链接时,如何更改此会话,使其像'Session [“ LoggedIn”] =注销并再次更改文本一样

预先感谢


protected void Login_Click(object sender, EventArgs e)
{
    Session["LoggedIn"] = emailTxtBx.Text;

    Response.Redirect("~/UL/Home.aspx");
}

if (Session["LoggedIn"] != null)
{
    loggedInLbl.Text = Session["LoggedIn"].ToString();
}

2 个答案:

答案 0 :(得分:0)

用户查看包

在控制器中

protected void Login_Click(object sender, EventArgs e)
{
    Session["LoggedIn"] = emailTxtBx.Text;
    ViewBag.Message = "This is Login Message";       
    Response.Redirect("~/UL/Home.aspx");
}

在视图中

if (ViewBag.Message != null)
{
    <div>
        <span>
            @ViewBag.Message
        </span>
    </div>  
}

View袋可帮助您将消息传递给View,并可以使用它动态地制作标签

答案 1 :(得分:0)

我知道了。

If (Session["LoggedIn"] != null)
{
        labelTxt.NavigateUrl = "~/webpage.aspx";
        labelTxt.Text = "LoggedIn";
}