将用户输入从一个页面发布到另一个页面

时间:2015-05-28 17:45:08

标签: c# asp.net

我正在创建一个ASP.NET网页,允许将人员信息输入文本框(firstName,lastName,payRate,startDate,endDate)。输入后,"提交"单击按钮,检查几个验证规则,如果所有字段都经过正确验证,则信息将传递到第二页以进行显示(再次在多行文本框中)。

现在我遇到的问题是,当按下提交按钮时,第二页上的文本框不会显示输入的信息;相反,它显示以下内容:

" System.Web.UI.WebControls.TextBox" < - 这显示五次(每个文本字段一次)

以下是来自第一页的提交按钮事件处理程序和来自已验证信息页面的页面加载处理程序的免除。

protected void btnSubmit_Click(object sender, EventArgs e)
{
    string Msg = "";
    Boolean validatedState = true;

    //validating first name text box
    if (Request["txtFirstName"].ToString().Trim() == "")
    {
        txtFirstName.BackColor = System.Drawing.Color.Yellow;
        Msg = "Please enter first name";
        lblError.Text += Msg;
        validatedState = false;
    }
    else
    {
        txtFirstName.BackColor = System.Drawing.Color.White;
        Msg = "";
        lblError.Text = "";
        validatedState = true;
    }

对所有五个字段重复这些if语句,然后将信息存储在会话状态并转移到下一页,如下所示:

if (validatedState)
    {
        Session.Add("txtFirstName", txtFirstName);
        Session.Add("txtLastName", txtLastName);
        Session.Add("txtPayRate", txtPayRate);
        Session.Add("txtStartDate", txtStartDate);
        Session.Add("txtEndDate", txtEndDate);
        Server.Transfer("frmPersonnelVerified.aspx");
    }

以下是验证信息页面中的页面加载处理程序,用于检索和显示会话对象中的信息。

protected void Page_Load(object sender, EventArgs e)
{
    //requesting information from personnel form; displaying in multi-line textbox called txtVerifiedInfo
    txtVerifiedInfo.Text = Session["txtFirstName"].ToString() +
                           Session["txtLastName"].ToString() +
                           Session["txtPayRate"].ToString() +
                           Session["txtStartDate"].ToString() +
                           Session["txtEndDate"];
}

1 个答案:

答案 0 :(得分:3)

汗如说:

    Session.Add("txtFirstName", txtFirstName);

应该是

    Session.Add("txtFirstName", txtFirstName.Text);