繁体   English   中英

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

[英]server side validation in asp.net application not working

我正在进行服务器端验证,但似乎无法正常工作。 下面是示例代码

     //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。 我可能是任何问题

我只是尝试下面的代码。

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

我建议您使用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" />

即使使用Scriptmanager它也Scriptmanager ... Scriptmanager ,我的解决方案是...我只是稍微更改了验证方法,结果非常棒...如下所示

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM