我有一个我无法弄清楚的验证问题。我“知道”我设置正确,但每次它都不能阻止我提交。基本上,我有一个表单,表单中唯一需要的是一个名为“tbEmail”的文本框。这是我的aspx页面中的代码:
<tr>
<td>
<asp:TextBox ID="tbEmail" runat="server" Height="40px" Width="688px"
Font-Size="20px" input-type="email" CausesValidation="True" AutoCompleteType="Email"></asp:TextBox>
</td>
<td>
<asp:RegularExpressionValidator ID="regexEmail" runat="server" ControlToValidate="tbEmail" SetFocusOnError="True" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ValidationGroup="Email">
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" ValidationGroup="Email" ControlToValidate="tbEmail" ErrorMessage="*">
</asp:RequiredFieldValidator>
</td>
</tr>
在我的代码后面,在图像按钮上点击事件处理程序我有这个:
protected void btnSubscribe_Click(object sender, ImageClickEventArgs e)
{
Page.Validate("Email");
if (Page.IsValid)
{
//call the method
my method here...
mvwForm.SetActiveView(vwSuccessEmail);
ClearControls(Page);
}
else
{
lblValidation.Visible = true;
}
}
但每次,如果我将电子邮件字段留空,则继续加载vwSuccessEmail视图。我已经尝试将tbEmail控件设置为使用ValidationGroup =“Email”以及相同的结果。有人抓住我在这里失踪的东西吗?
答案 0 :(得分:3)
我不知道你是否已经这样做了,但你也应该设置btnSubscribe
以使用ValidationGroup="Email"
。