В ASP.NET MVC3 (Razor) у меня есть простая страница, которая загружает диалоговое окно jQuery UI.
@{
ViewBag.Title = "Home Page";
}
<h2>yo</h2>
<div id="fileUpload">
</div>
<button id="button2">
Upload file
</button>
<script type="text/javascript">
$(document).ready(function () {
$('#button2').click(function () {
$fileUpload = $('#fileUpload');
$fileUpload.dialog({
minWidth: 500,
minHeight: 100,
title: 'Upload File(s)',
autoOpen: true,
buttons: {
'Upload': function () {
$('form').submit();
},
'Cancel': function () {
$(this).dialog('close');
}
},
open: function (event, ui) {
$(this).load('@Url.Action(MVC.FileUpload.FileUpload())');
},
close: function (event, ui) {
$(this).dialog('destroy');
//$(this).remove();
},
dialogClass: 'no-close',
closeText: '',
modal: true
});
});
});
</script>
Обратите внимание на open (), форма вызывает метод контроллера. Возвращает PartialView и выглядит так ...
публичный виртуальный ActionResult FileUpload () {вернуть новый
PartialViewResult (); }
Проблема, с которой я столкнулся, заключается в том, что IE кеширует вызов частичного представления. Если я обновляю частичное представление, оно не загружается, пока я не очищу кеш браузера.
Я пробовал метод уничтожения в close (), а также .remove (). Ни один не имеет эффекта. Я также подтвердил, что open () вызывается каждый раз при нажатии кнопки button2.
Есть какие-нибудь идеи о том, как сохранить содержимое диалога от кэширования?