RequiredFieldValidator控件验证不能为空时报错多种解决方法以及问题分析

最近在学asp.net,在使用RequiredFieldValidator控件进行验证时,发现报错,界面控件如下图:

点击完确定之后按理来说是要报不能为空的提示的但是却报错如下图:

经过一番研究发现,也看了其他人的解决方案,总结如下:

.net 4.5 ~(vs2012~)控件默认都Enable了 ,Unobtrusive ValidationMode的属性(和jquery的引用相关),但并未对其进行赋值, 必须手动对其进行设置。在进行数据验证时使用的各种validator需要在前端调用jquery来进行身份验证,都默认Enable了 Unobtrusive ValidationMode。如果不对该属性进行配置,将会产生如上错误。

1、 做好的解决办法,也是最简单的方法:在web.config文件中添加如下代码:

<appSettings>

<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />

</appSettings>

如图:

本人亲自测试好用,当然还有其他的方法可以尝试:

2、在程序允许的情况下,降低.Framework的版本,这个可以在web.config中改,也可以在属性中修改

3、

找到相应的Jquery(aspnet.scriptmanager.jquery.dl)文件将其复制到bin文件夹下。

由于我是新建的空Web应用程序,因此没有添加Jquery。我们可以通过新建一个非空的Web应用程序将里面的对应的Jquery文件粘贴到上文提到的文件夹下。

如果是测试程序你可以使用前两种方法,但是如果是大型互联网项目,推荐用第三种,从根本上解决问题,个人见解,仅供参考!同时感谢发布此问题相关的一些作者!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-07-29 00:04:58

RequiredFieldValidator控件验证不能为空时报错多种解决方法以及问题分析的相关文章

C++中的字符数组逐个赋值时报错的解决方法

C++中的字符数组逐个赋值时报错的解决方法 C++中定义一个字符数组的时候,如果初始化,则cout的时候不会出错,但是在逐个字符赋值的时候,很容易出错. #include<iostream> #include<string> using namespace std; int main() { //char s[100] = "china"; char s[100]; s[0]='c'; s[1]='n'; s[2]='\0'; cout<<s<

【第一个项目】MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:

MySQL第二天早上第一次连接超时报错,解决方法com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure Last packet sent to the server was 0 ms ago 最近碰到一个mysql5

关于“线程间操作无效: 从不是创建控件’textBox1‘的线程访问它”异常的解决方法

线程间操作无效: 从不是创建控件“textBox1”的线程访问它 背景:通过一个辅助线程计算出的一个值赋给textBox1.text;解决办法:1.直接在窗体的构造函数中加:System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; 此时把所有的控件 合法性线程检查全部都给禁止掉了. 2.通过代理来解决(msdn) private delegate void SetTextCallback(string text);

Android Studio中Button等控件的Text中字符串默认大写的解决方法

初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是android:textAllCaps, 最后查看了一下Themes.xml文件,找到了一些端倪,发现在设置样式的时候,默认是把所有的字符串显示大写true. 如图,是从android的Style.xml中的截图,   [解决办法] 1. 把xml中你不想大写的控件添加一行 android:text

关于线程间操作无效: 从不是创建控件“xx”的线程访问它,错误解决方法

这是一个线程不安全的问题.跨线程操作问题. 比如我们需要在线程中改变textbox的文本,textbox的name是txtShowMsg 第一种方法(不推荐使用) 在窗体构造函数中写Control.CheckForIllegalCrossThreadCalls =false; 这种方法,只是不去检查跨线程的安全性. 第二种方法(推荐使用) 第一步:定义一个委托 /// <summary> /// 委托改变 Text的值 /// </summary> /// <param na

新安装的soapui启动时报错及解决方法

今天新安装了soapui准备测试一下接口,结果安装成功后启动时报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large 意思就是:Java虚拟机无法启动.Xmx可能太大 这时就需要将这个参数的值改小一点. 经过排查这个参数在soapui安装目录\bin\目录下的vmoptions配置文件中 将原来的值改为800,保存后启动成功

HIVE-执行distribute by时报错的解决过程---之如何分析hive执行的错误并解决

在执行一条HIVE语句的时候报了以下错误,重新检查了所有步骤,重启所有服务,发现没有问题. 但发现一个有趣的事情 1,select sno,sname,sex,sage,sdept from student可以正常执行 2,sno,sname,sex,sage,sdept from student distribute by(sname) 不可以执行报错 在/tmp/用户名下查看系统hive.log,发现信息并不多.网上有其他方法可以查看更多日志,但太麻烦,速度很慢所以就没尝试. select

Oracle 11g不能导出空表的多种解决方法

空表不能导出的问题: 查资料发现Oracle 11g中有个新特性:新增了一个参数"deferred_segment_creation"含义是段延迟创建,默认是true. 具体是什么意思呢? deferred_segment_creation,即建立表的时候,这个表不会立即分配extent,也就是不占数据空间,即表也不分配segment以节省空间.直接在字典中记录了数据结构.而只有当真正有数据的时候才分配空间.这种方法对于象SAP这样大的系统需要部署成千上万张表是非常有效的.默认是开启的

在Android Studio中打开Android Device Monitor时报错的解决方法

在Android Studio中打开Android Device Monitor时报以下错误时(Android-SDK\tools\lib\monitor-x86_64\configuration\1491536029820.log),请关闭Android Studio后以管理员的模式打开Android Studio后即可解决此问题. !SESSION 2017-04-07 11:33:49.545 -----------------------------------------------