验证摘要未在组中拾取错误消息

时间:2013-05-20 15:13:44

标签: asp.net regex validation validationsummary

我的表单上有几个必填字段和正则表达式。点击按钮即可触发验证。单击该按钮时,错误消息将显示asp:RequiredField的声明位置,而不是验证摘要中的错误消息。这是我的代码:

验证摘要:

<asp:ValidationSummary id="mySummary" DisplayMode="List" HeaderText="Error:" EnableClientScript="true" ShowSummary="true" runat="server" ValidationGroup="valGroup" />

必填字段/正则表达式:

<!-- Required -->
<asp:RequiredFieldValidator ID="reqField1" ControlToValidate="txtSomething" ErrorMessage="Something is required" runat="server" Display="Static" InitialValue="" ValidationGroup="valGroup" />
<!-- Regex -->
<asp:RegularExpressionValidator runat="server" id="regexField1" ControlToValidate="txtSomething" 
    ErrorMessage="Something in the wrong format."  ValidationExpression="^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$" ValidationGroup="valGroup">
</asp:RegularExpressionValidator>

按钮:

<asp:LinkButton ID="btnValidate" runat="server" CausesValidation="True" ValidationGroup="valGroup" >Validate</asp:LinkButton>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这很难说,因为它看起来像我的设置正确。调试的唯一方法是检查Page.Validators集合,在那里找到验证器,并确保IsValid对于那些人来说是假的。所有ValidationSummary都会检查此集合,对于任何具有匹配验证组的人,如果IsValid属性为false,则将其添加到已呈现的列表中。