最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

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

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:43:16
文檔

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

ASP.NET MVC運(yùn)行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法:Chrome提示: 確定相關(guān)JS已經(jīng)包含在頁(yè)面中,(用的是MasterPage,二個(gè)頁(yè)面包含的js文件完全相同),排除了js引用路徑不正確的問(wèn)題。 頁(yè)面上生成的mvcClientValidationMetadata也沒(méi)問(wèn)題,但客戶(hù)端驗(yàn)證就是不起作用。 將MicrosoftAjax.js替
推薦度:
導(dǎo)讀ASP.NET MVC運(yùn)行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法:Chrome提示: 確定相關(guān)JS已經(jīng)包含在頁(yè)面中,(用的是MasterPage,二個(gè)頁(yè)面包含的js文件完全相同),排除了js引用路徑不正確的問(wèn)題。 頁(yè)面上生成的mvcClientValidationMetadata也沒(méi)問(wèn)題,但客戶(hù)端驗(yàn)證就是不起作用。 將MicrosoftAjax.js替

Chrome提示:

image

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

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

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

image

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

image

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


image

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

跟到這里大概能就猜出問(wèn)題在哪里了。 

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

image

表單的ID為null!

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

image    

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

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

image

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

image

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

 

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

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

杯具!

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

image image

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

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

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

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

ASP.NET MVC運(yùn)行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法:Chrome提示: 確定相關(guān)JS已經(jīng)包含在頁(yè)面中,(用的是MasterPage,二個(gè)頁(yè)面包含的js文件完全相同),排除了js引用路徑不正確的問(wèn)題。 頁(yè)面上生成的mvcClientValidationMetadata也沒(méi)問(wèn)題,但客戶(hù)端驗(yàn)證就是不起作用。 將MicrosoftAjax.js替
推薦度:
標(biāo)簽: 出現(xiàn) at error
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專(zhuān)題
Top