我有验证问题!

时间:2011-05-11 11:46:55

标签: c# asp.net validation

我想自己验证控件。所以当我按下按钮时,我会添加标签和条件。

 protected void sendButton1_Click(object sender, EventArgs e)
{
    if (QuestionDetailsTextBox2.Text.Length > 5000)
    {
        QuestionDetailsTextBox2.Text = "You cant enter more than 5000 characters";
    }
    else if(QuestionTextBox1.Text.Length > 100)
    {
        QuestionDetailsTextBox2.Text = "You cant enter more than 100 characters";
    }
    else if (checkValidation())
    {

        QuestionTextBox1.BorderColor = System.Drawing.Color.Red;
    }
    else
    {
        Response.Redirect("AnswerQuestion.aspx");
    }
}

我添加了一个正则表达式验证器。但我也这样做了:

  protected void topicDropDownMenu_SelectedIndexChanged1(object sender, EventArgs e)
{
    SubTopicDropDownList.Items.Clear();

    string[] chosenItem = topic[topicDropDownMenu.SelectedItem.Value];

    foreach (string item in chosenItem)
    {
        SubTopicDropDownList.Items.Add(item);
    }

}

同样,我需要按两次按钮才能重定向我:( ...还是需要ajax?

2 个答案:

答案 0 :(得分:2)

如果您想立即回复,则必须将验证逻辑移至客户端。这通常意味着您在javascript中编写验证逻辑,并在处理回发事件之前从客户端单击按钮事件或更改文本框事件来调用它。

执行代码检查需要往返服务器。无论您是这样做并回发整页还是使用ajax并进行部分回发,在将数据发送到服务器并且客户端等待响应时会有延迟。延迟有多大取决于需要传输多少数据和网络条件。这就是为什么ajax通常更快,它可以发送更小批量的数据。

但是,您处理客户端验证,通常认为在后面的代码中重复验证逻辑是最佳做法。这是为了捕获用户禁用客户端脚本的任何实例。

答案 1 :(得分:1)

您正在寻找Partial Page Update

您可以使用AJAX和UpdatePanel