У меня немного странная проблема, и я изо всех сил пытаюсь найти причину ...
У меня есть сайт ASP.net MVC, и недавно один из моих коллег начал использовать IE9 и заметил проблему с одной из страниц - она не обновлялась при нажатии кнопки сохранения.
Я подумал, что это, вероятно, будет проблема со скриптом, так как на этой странице довольно много jQuery, и это все еще может быть, но:
Если я отправлю эту страницу в Chrome (или в IE8 / 7/6), то получу коллекцию форм с 11 элементами, как я и ожидал. Если я отправляю ту же страницу в IE9, в конце коллекции я получаю дополнительный элемент, в котором ключом является пустая строка, а значением - пустая строка. Это приводит к тому, что вызов UpdateModel () не работает (но не вызывает исключение) - ни одно из этих значений не обновляется в моем объекте, а ModelState по-прежнему отображается как действительный.
Пока что я нашел только одну эту страницу, но мне любопытно, кто-нибудь может знать, что это вызывает?
Обновление 04/04/2011 - сужен виновник:
Я удалил кусочки кода, пока это не сработало, и сузил его до некоторого кода в моей проверке. Я использую плагин jQuery validate, и в качестве обработчика отправки у меня было следующее (некоторая редакция была выполнена для имен ...):
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();
}
},
Удаление этого из кода (что я, к счастью, могу сделать, поскольку это немного устаревший код), похоже, делает эту работу, мой пустой элемент в коллекции форм пропал. Если у кого-то есть идеи, почему это могло произойти, это было бы здорово.