博客可长可短-UnobtrusiveValidationMode的理解

  每天早上从床上爬起来第一件事就是来到博客园看大神神作,自己也曾多次幻想成为大牛。一直以来lz都觉得如果要写博客的话就得是一些重大问题的解决或重大突破,直到刚才我意识到:其实博客可长可短,有用(对自己或对他人)即可!好了废话不多说,现在就开始吧!~

  相信很多园友都遇到过这个问题:当我们用vs创建一个空的asp.net项目时,用到验证控件时都会遇到出现异常错误,但是代码检查再三都是没有任何问题的(见下图)……

  解决办法一:在使用验证控件的当前页面后台page_load中加这样一句代码UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;

我们先来从字面上理解下这句代码的含义:Unobtrusive 

adj.不突出的,不引人注目的谦虚的不唐突的不冒昧的; 那也就是讲使用验证模式设为none。name微软是怎样定义UnobtrusiveValidationMode的呢?微软的解释是:应用程序的客户端验证架构。那么我们的设置即屏蔽了微软的ValidationSettings类库,底层需要jquery的支持。

正好验证了浏览器所报的错误,这样一来虽然问题解决了,但是由于我们屏蔽了ValidationSettings,当我们像让错误以弹框或其他华丽的形式告知用户时又会报丢失文件的异常错误。所以此方法具有一定的局限性。

  解决办法二:既然浏览器解析报缺少jquerymapping的错误,那么我们就在项目中添加即可。

 

1.在根目录下新建一scripts文件夹,向里边添加jquery-1.7.2.min.js和jquery-1.7.2.js(可根据自己需要使用不同的版本),

 

2.在根目录下添加Global.asax文件,在Application_Start事件中添加如下代码:

 

1 ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition { Path = "~/scripts/jquery-1.7.2.min.js", DebugPath = "~/scripts/jquery-1.7.2.js", CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.min.js", CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.7.2.js" });
View Code

 

 

 

posted @ 2014-03-02 16:29  旋转乾坤  阅读(1770)  评论(1编辑  收藏  举报