我有一个简报的小部件,我使用RegularExpressionValidator检查电子邮件输入是否有效。我的代码隐藏是一种打开smtp连接并发送电子邮件的方法。 我的.aspx看起来像这样:
<asp:TextBox ID="txtEmail" runat="server" CssClass="form-control newsmail"></asp:TextBox>
<asp:RegularExpressionValidator style="position:absolute; margin-top:50px; margin-left:58px;" ID="RegularExpressionValidator1" runat="server" ErrorMessage="Invalid E-mail" ControlToValidate="txtEmail" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
<asp:Button ID="submit" runat="server" Text="Submit" CssClass="btn btn-lg btn-success submit" OnClick="submit_Click1" />
我的代码隐藏有以下方法:
protected void submit_Click1(object sender, EventArgs e)
{
....
}
显然,就像现在一样,它会尝试发送电子邮件,无论电子邮件是否有效。因此,我正在寻找某种条件表达式,它在完成方法并发送电子邮件之前将RegEx考虑在内。
我知道可以在C#中完成所有操作,但我对C#来说还是比较新的,所以这看起来就像是最简单的解决方法。
答案 0 :(得分:0)
ASP.net页面中的验证器已经可以在浏览器中用作JavaScript。当您启用此功能并且用户的浏览器启用了JavaScript时,如果输入控件中存在无效数据,则甚至不会执行submit_Click1
方法。
如果禁用验证器在客户端工作或用户的浏览器未启用JavaScript,则应检查后面的代码,所有验证器都成功验证了用户输入。您可以通过检查页面的isValid
属性来执行此操作:
protected void submit_Click1(object sender, EventArgs e)
{
if(Page.IsValid)
{
// All Validators Passed -> Do something
}
else
{
// Some invalid data, do nothing
}
}