asp.net应用程序中的服务器端验证不起作用

时间:2012-01-24 22:23:47

标签: c# asp.net server-side-validation

我正在进行服务器端验证,但似乎它的工作方式不合适。以下是示例代码

     //Validation

    private void validation()
    {
        if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return; }

        if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return; }
    }


       // Alert mesage
  public void Alert(string msg)
    {
        ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script
         type='text/javascript'>alert('" + msg + "');</script>");
    }

在我的按钮下一次点击事件我正在调用此函数,如

    protected void button_Click(object sender, EventArgs e)
    {
        validation();
    }

令人惊讶的是,即使我没有在texbox中输入任何内容(意味着文本框为空)......也没有警报。然而,它应该提醒。

有人能指出我做错了什么。感谢您的帮助。

修改

最令人讨厌的是,相同的代码在其他页面中工作正常。如果字段为空或验证失败,则会发出警报。不确定这个页面有什么问题。

Fe指针...这个特定的aspx页面...有很多用户控件和那些控件ascx页面都有Javascript。我可能是任何问题

3 个答案:

答案 0 :(得分:0)

我刚试过以下代码。

protected void Button1_Click(object sender, EventArgs e)
{
    validation();
}

private void validation() 
{ 
    Alert("Invalid Name"); 
} 


   // Alert mesage 
public void Alert(string msg) 
{ 
    ClientScript.RegisterStartupScript(typeof(Page), "SymbolError", "<script type='text/javascript'>alert('" + msg + "');</script>"); 
} 
似乎一切都运转良好。 看看这是否有任何设置问题。 (不确定我只是在做试验和错误)。

http://bytes.com/topic/asp-net/answers/518330-clientscript-registerstartupscript

答案 1 :(得分:0)

我想你使用Asp.net验证控件,比如必填字段验证器,比较验证器。因为框架会为你做所有的事情。那么为什么你要自己验证。 ?

在aspx中

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="InvalidName" ControlToValidate="TextBox1"></asp:RequiredFieldValidator>

如果要在消息框或摘要中显示所有验证,则可以使用验证摘要控件

<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" />

答案 2 :(得分:0)

即使使用Scriptmanager它也没有成功... o,我的解决方案是......我只是稍微更改了验证方法,效果很好......如下所示

private bool validation() 
{ 
    if (txtFName.Text == string.Empty) { Alert("Invalid Name"); return false; } 

    if (txtLName.Text == string.Empty) { Alert("Invalid Name"); return false; } 
}