Я в настоящее время нахожусь в процессе создания приложения MVC, это в основном просто большой CRUD-инструмент для содержимого базы данных.
Для небольших таблиц, которые используются для ограничения некоторых вариантов выбора (страны, категории и тому подобное), я создал 1 страницу, которая загружает запрошенную таблицу и позволяет пользователю добавлять / удалять / редактировать свойства, используя только вызовы Ajax.
Когда страница загружена, пользователь получает выпадающий список со всеми именами таблиц. При отправке запускается следующий код:
public PartialViewResult OpenConfig(string SelectID)
{
using (DBconnection db = new DBconnection())
{
switch (SelectID)
{
case "---":
return null;
case "1":
var countries = (from x in db.tbl_CountriesSet select x).ToList();
return PartialView("Countries", countries);
case "2":
var supplierstatus = (from x in db.tbl_SupplierStatusSet select x).ToList();
return PartialView("Supplierstatus", supplierstatus);
case "3": .....
}
}
}
Вот где это становится интересным. Предположим, я открываю окно «Страны», оно загружается правильно, я могу добавить / отредактировать / удалить страну. Эти записи обновляются на странице с использованием jQuery, и одновременно для обновления базы данных используется вызов Ajax. Оба они работают нормально, как база данных обновляется, так и страница. Я могу продолжать работать, и все изменения отражаются как на странице, так и в БД, проблемы начинаются при перезагрузке частичного представления.
Когда я выбираю значение «Страны» в раскрывающемся списке и снова отправляю его, программа просто пропускает метод, показанный выше, и отображает тот же частичный вид, который был показан мне при первом запросе списка.
Я устанавливаю точку останова в методе, если я загружаю что-то, что я не загрузил, прежде чем это сработает, но не для страниц, которые я уже запросил.
В Firefox это работает, и частичное представление обновляется (и срабатывает точка останова), но в Internet Explorer мой контроллер полностью игнорируется, и он продолжает отображать одну и ту же страницу (даже когда я перехожу на совершенно другую страницу и затем возвращаюсь назад на страницу настроек).
Может кто-нибудь сказать мне, как я могу сказать IE, чтобы явно перезагрузить частичное представление, содержащее текущее содержимое базы данных?