標籤:.net asp.net jquery 經驗
相信有過ASP.NET學習經驗的人對RequiredFieldValidator控制項(驗證非空控制項)一定不會陌生,該控制項的作用是禁止輸入規定的內容(即屬性InitialValue的值,該屬性預設值為空白字串,我們經常用來驗證使用者輸入的內容是否為空白。)。另外,在驗證前會自動去掉輸入內容兩端的空格。
今天在練習該控制項的使用的時候遇到了如下問題:
錯誤原因
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、找到相應的Jquery(aspnet.scriptmanager.jquery.dl)檔案將其複製到bin檔案夾下。
由於我是建立的空Web應用程式,因此沒有添加Jquery。我們可以通過建立一個非空的Web應用程式將裡面的對應的Jquery檔案粘貼到上文提到的檔案夾下。
以上三種方法個人比較傾向於第三種,第一、第二種給人一種逃避問題的感覺,第三種方法才是發現問題就解決問題的王道(個人理解)。於此同時,在解決這個問題的過程中也看了很多部落格,每個人也或多或少的給出了類似的方法,但是去描述問題產生的原因的卻很少。這可能是中國軟體頁受制於人的部分原因吧。
(菜鳥拙作,如有紕漏望您不吝賜教)
協助連結:http://www.shaoqun.com/a/56680.aspx
轉載請註明出處:http://blog.csdn.net/senior_lee