最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET MVC運行出現Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法

 更新時間:2010年04月12日 00:12:17   作者:  
同一相站點,有些頁面的客戶端驗證能工作,而有些死活不行。打開頁面就出現Uncaught TypeError: Cannot set property __MVC_FormValidation of null錯誤

Chrome提示:

image

確定相關JS已經包含在頁面中,(用的是MasterPage,二個頁面包含的js文件完全相同),排除了js引用路徑不正確的問題。

頁面上生成的mvcClientValidationMetadata也沒問題,但客戶端驗證就是不起作用。

將MicrosoftAjax.js替換成MicrosoftAjax.debug.js。在Chrome調試工具中看到此異常在Sys.UI.DomElement.getElementById函數中拋出

image

在394行加個斷點,刷新頁面,一步步跟蹤,

image

162行,根據ID獲取某個DOM對象,在這里看到optionsFormID為null。(Chrome的js調試功能很強),再看到CallStack的上一步。


image

這里是在頁面加載完成后處理客戶端驗證的mvcClientValidationMetadata 數據。

跟到這里大概能就猜出問題在哪里了。 

查看頁面源碼,在</form>節(jié)點后的腳本中看到生成的驗證代碼如下:

image

表單的ID為null!

然后我再打開難進行客戶端驗證的頁面:

image    

看到差別了,就是因為FormID為null。 

并且他們生成的表單也有所不同:

image

不能進行客戶端驗證的Form

image

能進行客戶端驗證的Form

 

有id的Form能進行客戶端驗證!

可是二個視圖中都是用using (Html.BeginForm()){}生成表單的,沒有特意去設置Form ID屬性,為何一個有id另一個沒id?

杯具!

打開二個視圖頁面,一個一個排查,最后發(fā)現二個視圖的差別在這一點:

image image

前都是在BeginForm()之前調用Html.EnableClientValidation();,后BeginForm之后才調用 Html.EnableClientValidation(); 

記住了,想要用mvc client side validation,請在BeginForm()之前調用Html.EnableClientValidation();

相關文章

最新評論

安图县| 黄陵县| 西贡区| 繁昌县| 玉环县| 卓资县| 旬邑县| 平湖市| 山东| 临洮县| 开远市| 大邑县| 鄢陵县| 湾仔区| 嘉祥县| 徐水县| 安吉县| 章丘市| 鄯善县| 淳化县| 湖州市| 华安县| 田林县| 乌恰县| 龙陵县| 雅江县| 中西区| 林芝县| 盐池县| 宣威市| 广宗县| 洛南县| 洞口县| 磐石市| 石渠县| 南昌市| 繁昌县| 岳普湖县| 兴山县| 扶余县| 阳东县|