亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ASP.NET MVC運(yùn)行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法

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

Chrome提示:

image

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

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

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

image

在394行加個(gè)斷點(diǎn),刷新頁面,一步步跟蹤,

image

162行,根據(jù)ID獲取某個(gè)DOM對象,在這里看到optionsFormID為null。(Chrome的js調(diào)試功能很強(qiáng)),再看到CallStack的上一步。


image

這里是在頁面加載完成后處理客戶端驗(yàn)證的mvcClientValidationMetadata 數(shù)據(jù)。

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

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

image

表單的ID為null!

然后我再打開難進(jìn)行客戶端驗(yàn)證的頁面:

image    

看到差別了,就是因?yàn)镕ormID為null。 

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

image

不能進(jìn)行客戶端驗(yàn)證的Form

image

能進(jìn)行客戶端驗(yàn)證的Form

 

有id的Form能進(jìn)行客戶端驗(yàn)證!

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

杯具!

打開二個(gè)視圖頁面,一個(gè)一個(gè)排查,最后發(fā)現(xiàn)二個(gè)視圖的差別在這一點(diǎn):

image image

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

記住了,想要用mvc client side validation,請?jiān)贐eginForm()之前調(diào)用Html.EnableClientValidation();

相關(guān)文章

最新評論