Динамическое изменение метки на основе переменной сеанса / состояния

#c# #asp.net

#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();
}
  

Ответ №1:

Пользовательские пакеты просмотра

в контроллере

 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, и вы можете использовать его для динамического создания метки

Ответ №2:

Я понял это.

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