会话变量不是值

时间:2016-06-07 08:35:07

标签: c# asp.net

我有两个webform,一个是JournaL Book.aspx,另一个是Journal Entry.aspx。 webform JournaL Book.aspx包含一个图像按钮,即imgbtnentry和textbox即txtjournalname.And 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();            
    }             

}

1 个答案:

答案 0 :(得分:2)

TextBox.Text永远不会返回null,所以这是毫无意义的:

if (txtjournalname.Text != null)
{
    // ....
}

因为即使您明确指定TextBox.Textnull也会返回一个空字符串。

所以使用这个:

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

Source

顺便说一句,这不仅仅是一个ASP.NET的东西,即使所有的winforms控件都有相同的行为。 Source of Control.Text