Visual Studio 2013新建ASP.NET項目使用Empty模板,在頁面中使用驗證控件,運行頁面,會出現如下的錯誤:
錯誤原因
VisualStudio 2012(或2013) WebForm 4.5 開發中,很多控件默認Enable了 Unobtrusive ValidationMode(所謂Unobtrusive Validation,就是一種隱式的驗證方式)的屬性(和jquery的引用相關),但並未對其進行賦值, Programmer必須手動對其進行設置。比如,在進行數據驗證時使用的各種validator(今天使用的RequiredFieldValidator控件),以及進行authorization及authenication設置時,由於需要在前端調用jquery來進行身份驗證,都默認Enable了 Unobtrusive ValidationMode。如果不對該屬性進行配置,將會產生ERROR。
解決方法
從錯誤產生的原因我們能很容易的對症下葯,從錯誤原因中我們得到的解決問題的方法無非有三:
1、 在程序允許的情況下,降低.Framework的版本,具體方法如下:
- <!--修改前-->
- <system.web>
- <compilation debug="true" targetFramework="4.5" />
- <httpRuntime targetFramework="4.5" /> <!—將其刪除-->
- </system.web>
- <!--修改后-->
- <system.web>
- <compilation debug="true" targetFramework="4.0" />
- </system.web>
2、更改Web.config配置文件設置Unobtrusive ValidationMode的類型,具體方法如下:
- <!--修改前-->
- <system.web>
- <compilation debug="true" targetFramework="4.5" />
- <httpRuntime targetFramework="4.5" />
- </system.web>
- <!--修改后-->
- <system.web>
- <compilation debug="true" targetFramework="4.5" />
- <httpRuntime targetFramework="4.5" />
- </system.web>
- <appSettings>
- <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
- </appSettings>
3、找到相應的AspNet.ScriptManager.jQuery.dll文件將其復制到bin文件夾下。
由於我是新建的空Web應用程序,因此沒有添加Jquery。我們可以通過新建一個非空的Web應用程序將里面的對應的Jquery文件粘貼到上文提到的文件夾下。
為了方便,大家可以點擊下載AspNet.ScriptManager.jQuery.dll。用這種方法后,頁面運行不報錯了,但發現驗證控件不起作用了,文本框沒有輸入,也能提交。這時需要在Web應用程序或ASP.NET網站下新建Scripts文件夾,把jquery-1.10.2.js(點擊下載jquery-1.10.2.js)文件復制到Scripts文件夾下,即可使驗證控件生效。
本文參考了:http://blog.csdn.net/senior_lee/article/details/35337081?utm_source=tuicool