【发布时间】:2026-01-29 21:50:01
【问题描述】:
我在 asp.net webforms 中构建了一个简单的联系表单。我填写了这些字段,单击提交,一切正常,几分钟后我收到了一封电子邮件。到目前为止一切正常。
但是将字段留空会引发异常,正如您所期望的那样,字符串 txtEmail 不能为空或类似的单词。所以我想我会添加一个“asp:RequiredFieldValidator”,但是现在当我点击提交时,什么也没有发生。 因此,在 Chrome 中,我检查了代码,发现验证器代码的样式设置为“显示:无”,本质上它们没有被触发,也没有显示警告。 我填写了字段并单击了提交,但什么也没发生。我重新加载了页面,填写了字段并单击了提交,但什么也没发生。 似乎包含 RequiredFieldValidator 正在阻止按钮上的 OnClick 操作。如果我删除它们,它可以正常工作。
有什么想法吗?
编辑:一些代码
<div class="form-group has-feedback">
<asp:Label ID="lblEmail" runat="server" AssociatedControlID="txtEmail" Text="Email" CssClass="col-sm-3 control-label"></asp:Label>
<div class="col-sm-6">
<asp:TextBox ID="txtEmail" CssClass="form-control" runat="server" placeholder="Email" TextMode="Email"></asp:TextBox>
<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
</div>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" Display="Dynamic" runat="server" ErrorMessage="Please enter your email" ControlToValidate="txtEmail" CssClass="text-danger">
</asp:RequiredFieldValidator>
</div>
<div class="row">
<div class="col-sm-offset-3 col-sm-6">
<asp:LinkButton ID="lnkSubmit" runat="server" OnClick="lnkSubmit_Click" CssClass="btn standard-hover-effect bg-red btn-lg btn-block">
<span class="text">Contact us <i class="fa fa-arrow-right"></i></span>
</asp:LinkButton>
</div>
</div>
点击事件——
protected void lnkSubmit_Click(object sender, EventArgs e)
{
MailMessage mm = new MailMessage(txtEmail.Text, "foo@bar.com");
mm.Subject = "Feedback from website";
mm.Body = "Email from " + txtYourName.Text + "<br /><br />" + txtMessage.Text;
SmtpClient smtp = new SmtpClient();
smtp.Host = "mail.domain.net";
smtp.Send(mm);
//panContact.Visible = false;
panContactThanks.Visible = true;
}
正如我所说,没有必填字段验证器,代码可以正常工作。如果我把它们放进去,表格就不起作用了。
【问题讨论】:
-
您是否需要 requiredfield valitor?
-
是的,以确保人们在填写联系表时输入姓名和电子邮件地址。我想我可以手动编写代码,但这不是RequiredFieldValidator 的重点吗?
-
分享你的代码你如何应用 requiredfieldvalidator
-
您也应该始终进行服务器端验证。即使你让验证器工作。
if (!string.IsNullOrEmpty(txtEmail.Text)) { //send mail }。如果您的页面某处出现 javascript 错误,可能会导致验证器无法正常工作。
标签: asp.net webforms onclick requiredfieldvalidator