Dan*_*ana 25 asp.net validation
我有一个问题,关于什么可以阻止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" />
Run Code Online (Sandbox Code Playgroud)
我在同一个项目中创建了一个全新的webform,只有一个文本框,验证器和提交按钮,它的行为方式相同.显示错误消息但仍会发生回发.
是否存在导致此行为的全局或项目范围设置?web.config或global.asax中有什么东西?
Dan*_*ana 33
呼.好的,我发现了这个问题,基本上是通过创建一个全新的项目并将其web.config与我的旧项目进行逐行比较.原来是罪魁祸首是这样的:
<xhtmlConformance mode="Legacy"/>
Run Code Online (Sandbox Code Playgroud)
如果我删除该行,我的验证将按照我预期的方式工作.谷歌上发现了一些博客文章,关于当将.net 1.1的网络应用程序升级到.net 3.5时,VisualStudio如何将该行添加到web.config中.
博客文章主要是抱怨该字段如何干扰.net的AJAX内容,但我猜测它以类似的方式为RequiredFieldValidator发出的JavaScript混乱.
wom*_*omp 11
验证可以在客户端上(如果可用)或在服务器上进行.验证器的工作不是阻止回发,而是验证输入.
确保您启用了javascript,并尝试将"EnableClientScript"显式设置为true.
在代码隐藏中,您永远不应该相信验证器在客户端上进行验证,并始终使用"if Page.IsValid".
| 归档时间: |
|
| 查看次数: |
35005 次 |
| 最近记录: |