我有一個有點古怪的問題的一個額外的項目,我掙扎追查根源...ASP.net MVC - IE9與表單中收集的空鍵
我有一個ASP.net MVC網站,最近我的一位同事開始使用IE9,並注意到其中一個頁面出現問題 - 點擊保存時沒有更新。
我想,這可能會是一個腳本問題,因爲有這個頁面上的jQuery的公平位使用,並且它可能仍然是,但是:
如果我在Chrome提交此頁面(或IE8/7/6),然後我得到一個包含11個項目的表單集合,就像我期望的那樣。如果我在IE9中提交相同的頁面,我會在集合的末尾獲得一個額外的項目,其中有一個空字符串作爲鍵和一個空字符串作爲值。這會導致對UpdateModel()的調用不起作用(但不會引發異常) - 這些值都不會在我的對象中更新,並且ModelState仍然顯示爲有效。
到目前爲止,我只找到了這一頁,但我很好奇,如果有人可能知道是什麼造成這種情況?
更新04/04/2011 - 縮小的罪魁禍首:
我刪除的碼位,直到這個工作,並把範圍縮小到在我的驗證一些代碼。我使用jQuery的驗證插件,並已作爲提交處理(在名稱進行了一些新版本......)以下:
submitHandler: function (form) {
var submitForm = true;
var newValue, originalValue;
newValue= $("#newValue").val();
originalValue= $("#originalValue").val();
if (newValue!= originalValue) {
//affectedValues is an array populated at the top of the page.
if ($.inArray(originalValue, affectedValues) != -1 &&
$.inArray(newValue, affectedValues) == -1) {
submitForm = confirm("Are you sure you want to do this");
}
}
if (submitForm) {
form.submit();
}
},
從代碼(我可以做謝天謝地刪除此,因爲它是一個位遺留代碼)似乎使這項工作,我的表單集合中的空項目消失了。如果有人知道爲什麼會發生這種情況,那會很好。
是否有機會將問題縮小爲可以在此發佈的簡單表單?當我升級到IE9時,我沒有注意到我的應用程序有任何問題。 – 2011-04-04 11:29:51
我正在試圖縮小它的過程 - 它似乎與腳本有關,因爲當我註釋掉頁面上的所有腳本時,它就消失了......我使用jquery 1.5.2和jquery ui 1.8 .10(只是升級了IE9兼容性的jQuery lib ...)。 – Paddy 2011-04-04 11:50:15