【问题标题】:Server Side validation not working - ASP.NET服务器端验证不起作用 - ASP.NET
【发布时间】:2014-09-29 06:28:46
【问题描述】:

客户端验证工作正常。我禁用了客户端以查看它是否也可以在服务器端正常工作,但失败了。即使输入文本无效,编译器也会到达“SaveData”。 没有更新面板。 我该如何解决这个问题。

ASPX:

<asp:TextBox ID="txtDept" runat="server" pattern="[a-z A-Z]*"></asp:TextBox>

<asp:RegularExpressionValidator 
    ID="revDept" 
    runat="server" 
    ValidationExpression="^[a-zA-Z\s]{1,50}$" 
    ControlToValidate="txtDept" 
    Display="Dynamic" 
    ErrorMessage="Only alphabets and spaces are allowed." 
    EnableClientScript="false">
</asp:RegularExpressionValidator>

C#:

protected void btnSubmit_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
          SaveData();
        }        
    }

【问题讨论】:

  • 在服务器端显式调用 Page.Validate()。
  • 另外,尝试从文本框中删除模式。您可能会遇到两者的模式冲突(并且它们不等效)
  • 这是一个 WAP 网站,所以我需要把它放上去。任何其他选择
  • @Sain。谢谢你的工作。我记得,即使没有显式调用 validate(),它也适用于其他形式。任何原因。还是我只是试用一下??

标签: c# asp.net


【解决方案1】:

您需要在提交按钮上启用“CausesValidation”(如果是这样,我们无法签入您的代码),或者在测试 IsValid 属性之前显式调用“Page.Validate()”。

也请看一下How does Page.IsValid work?,可能会有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 2013-01-10
    • 2013-01-28
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多