C# 会话变量未返回值

C# 会话变量未返回值,c#,asp.net,C#,Asp.net,我有两个网络表单,一个是JournaL Book.aspx,另一个是JournaL Entry.aspx。 webform JournaL Book.aspx包含一个图像按钮,即imgbtnentry和文本框,即txtjournalname。webform JournaL Entry.aspx包含一个标签,即lbljournalbookname。在这里,我试图显示我在文本框中输入的任何文本,即lbljournalbookname中的txtjournalname,在另一个页面中,即Journal

我有两个网络表单,一个是JournaL Book.aspx,另一个是JournaL Entry.aspx。 webform JournaL Book.aspx包含一个图像按钮,即imgbtnentry和文本框,即txtjournalname。webform JournaL Entry.aspx包含一个标签,即lbljournalbookname。在这里,我试图显示我在文本框中输入的任何文本,即lbljournalbookname中的txtjournalname,在另一个页面中,即Journal Entry.aspx,单击按钮,如果我没有在文本框中输入任何内容,标签文本应该是无标题的日志。因此,问题是,无论我在文本框中输入什么内容,都会显示在标签文本中,但当我没有输入时在标签文本中输入任何标签文本都不能代替无标题日记账

代码隐藏按钮,即Journal Book.aspx中的imgbtnentry

    protected void imgbtnentry_Click(object sender, ImageClickEventArgs e)
{
    if (txtjournalname.Text != null)
    {
        Session["JournalBookName"] = txtjournalname.Text;
        Response.Redirect("Journal Entry.aspx");
    }
    else
    {
        Session["JournalBookName"] ="Untitled Journal";
        Response.Redirect("Journal Entry.aspx");
    }

}
Journal Entry.aspx页面加载中的代码

  protected void Page_Load(object sender, EventArgs e)
{         
    if (!IsPostBack)
    {           
        lbljournalbookname.Text = Session["JournalBookName"].ToString();            
    }             

}
从不返回null,因此这是毫无意义的:

if (txtjournalname.Text != null)
{
    // ....
}
因为
TextBox.Text
返回空字符串,即使您显式指定
null

所以用这个:

if (!String.IsNullOrEmpty(txtjournalname.Text))
{
    Session["JournalBookName"] = txtjournalname.Text;
    Response.Redirect("Journal Entry.aspx");
}
else
{
    Session["JournalBookName"] ="Untitled Journal";
    Response.Redirect("Journal Entry.aspx");
}


顺便说一句,这不仅仅是ASP.NET的事情,甚至所有winforms控件都有相同的行为

设置断点,逐步检查代码,检查变量。感谢您的帮助