C# 如果我的电子邮件地址格式不正确,如何使我的按钮不通过?
我的电子邮件地址文本框中有必需的字段验证器和正则表达式验证器。如果电子邮件没有价值或格式不正确,则会显示这两个验证器。但是,当我单击submit按钮并试图在电子邮件文本框中输入错误的值(例如,我输入了数字2)时,程序仍然会通过submit按钮功能进行操作。是否有任何技巧或参考,我可以使按钮不继续,直到电子邮件文本框有正确的格式(abc@yahoo.com)? 谢谢你的建议。:) 以下是我的电子邮件文本框代码:C# 如果我的电子邮件地址格式不正确,如何使我的按钮不通过?,c#,asp.net,textbox,email-validation,C#,Asp.net,Textbox,Email Validation,我的电子邮件地址文本框中有必需的字段验证器和正则表达式验证器。如果电子邮件没有价值或格式不正确,则会显示这两个验证器。但是,当我单击submit按钮并试图在电子邮件文本框中输入错误的值(例如,我输入了数字2)时,程序仍然会通过submit按钮功能进行操作。是否有任何技巧或参考,我可以使按钮不继续,直到电子邮件文本框有正确的格式(abc@yahoo.com)? 谢谢你的建议。:) 以下是我的电子邮件文本框代码: <asp:TextBox ID="txtCustomerEmailID" run
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ErrorMessage=" Email Address is Required." ForeColor="Red" ControlToValidate="txtCustomerEmailID"
validationgroup="PersonalInfoGroup"
></asp:RequiredFieldValidator>
最后是错误:
指定的字符串不是电子邮件地址所需的格式
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["Username"]);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.IsBodyHtml = true;
mailMessage.To.Add(new MailAddress(recipientEmail));
SmtpClient smtp = new SmtpClient();
smtp.Host = ConfigurationManager.AppSettings["Host"];
smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
smtp.UseDefaultCredentials = false;
smtp.Credentials = NetworkCred;
smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
smtp.Send(mailMessage);
}
mailMessage.To.Add(new MailAddress(recipientEmail));
您必须更改文本框和按钮的验证组
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px" validationgroup="PersonalInfoGroup" ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server"
ErrorMessage=" Email Address is Required." ForeColor="Red" ControlToValidate="txtCustomerEmailID"
validationgroup="PersonalInfoGroup"
>
还需要RegularExpressionValidator您可以通过这种方式重定向您的方法 HTML
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px"></asp:TextBox>
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtCustomerEmailID" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>
你这里有不止一个问题吗?
<asp:Button ID="btnPlaceOrder" runat="server" OnClick ="btnPlaceOrder_Click"
Style = "font-weight:700" Text="PlaceOrder" Width="90px" validationgroup="PersonalInfoGroup" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="RegularExpressionValidator" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
<asp:TextBox ID="txtCustomerEmailID" runat="server" Width="231px"></asp:TextBox>
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtCustomerEmailID" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>
if(txtCustomerEmailID!="")
{
//Your Stuffs
}
else
{
// Do some script to give alert or use label to make display the text as you wish
}