ASP.net RequiredFieldValidator不阻止回发

我有一个问题,可能会阻止requiredFieldValidator阻止回发。

我开始使用旧的但简单的aspx表单,而我的前任使用手动的服务器端表单验证(检查一些表单域是否具有值,如果在标签中未显示错误消息)。我以为我会清理一些不需要的代码,并用requiredFieldValidator控件替换手动检查,但是当它们似乎正在验证时,它们不会阻止回发。也就是我的错误消息显示,但回发仍然发生。

形式很简单,没有CausesValidation =“false”属性设置。我的控件看起来像:

<asp:TextBox ID="txtPhone" Runat="server" Columns="20" MaxLength="20" />
 <asp:requiredFieldValidator ID="rfvPhone" runat="server" Display="Dynamic"
      ErrorMessage="* required" ControlToValidate="txtPhone" />

我在同一个项目中创建了一个全新的Webform,只需一个文本框,验证器和提交按钮,它的行为方式相同。错误消息显示,但回发仍然发生。

是否有全球或项目范围的设置会导致此行为?在web.config或global.asax中的东西?

解决方法

呼。好的,我发现问题,基本上是创建一个全新的项目,并将其web.config逐行与我的旧项目进行比较。原来是罪魁祸首是这样的:
<xhtmlConformance mode="Legacy"/>

如果我删除该行,我的验证工作方式我预计。谷歌搜索发现一堆博客帖子,关于VisualStudio如何将该行从.net 1.1升级到.net 3.5时,将该行添加到web.config中。

博客主要是抱怨这个字段干扰了.net的AJAX的东西,但是我猜测它会以类似的方式混淆为requiredFieldValidator发出的JavaScript。

相关文章

项目要求通过网站上传大文件,比如视频文件,通过摸索实现了文件分片来上传,然后后台进行合并。 使用了...
安装新版本的Nginx(vim /etc/yum.repos.d/nginx.repo) [nginx-stable] name=nginx stable repo baseu...
什么是 SignalR&#160;ASP.NET Core ASP.NET Core SignalR 是一种开放源代码库,可简化将实时 web 功...
在Windows下使用Docker,我们选择Docker Desktop这个软件,非常方便。 ## Docker Desktop介绍及安装 Do...
项目开始设计的是运行在windows下,所以一开始采用的是windows服务模式来获取多媒体文件信息,后来要求...
银河麒麟高级服务器操作系统V10是针对企业级关键业务,适应虚拟化、云计算、大数据、工业互联网时代对主...