文本框采用错误的值

时间:2014-01-08 14:04:51

标签: asp.net

我正在通过网络服务在asp.net中添加两个数字。但它显示了错误的结果。 当我调试它时,文本框的价值比我在文本框中放置的价值还要高。 如果有人对此有任何疑问,请告诉我。为什么会这样?

Web服务中的代码: -

public int ADD(int a, int b)
{
    return a + b;
}

Default.aspx.cs: -

protected void Button1_Click(object sender, EventArgs e)
{
    if (IsPostBack == true)
    {
        WebService1 ws = new WebService1();
        int res = ws.ADD(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox1.Text));
        Label3.Visible = true;
        LblReslt.Visible = true;
        LblReslt.Text = res.ToString();
    }
}

2 个答案:

答案 0 :(得分:3)

您需要将第二个文本框更改为TextBox2:

int res = ws.ADD(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));

答案 1 :(得分:0)

你可以清理几件小事。

protected void Button1_Click(object sender, EventArgs e)
{
    if (IsPostBack) //an if expression already tests for true/false. Since IsPostBack is already a Boolean, then testing it for equality to true is redundant.
    {
    }
}

根据定义,如果单击按钮的事件处理程序,您将处于回发状态。所以你不需要检查它是否是回发。而且你要添加两次相同的TextBox。我建议你添加第二个复选框的值。如有疑问,请使用调试器逐步查看代码,看看发生了什么。

protected void Button1_Click(object sender, EventArgs e)
{
     WebService1 ws = new WebService1();
     int res = ws.ADD(Convert.ToInt32(TextBox1.Text), Convert.ToInt32(TextBox2.Text));
     Label3.Visible = true;
     LblReslt.Visible = true;
     LblReslt.Text = res.ToString();
}