与ASP.NET MVC3(Razor)我有一个简单的页面,加载一个jQuery UI对话框。在窗体加载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文件上传(){返回新 PartialViewResult(); }
我遇到的问题是IE浏览器缓存对局部视图的调用。如果我更新了局部视图,那么在我清除浏览器缓存之前它不会加载。
我试过close()以及.remove()方法上的'destroy'方法。没有效果。我也确认open()每次被点击#button2时被调用。
有关如何保持对话内容不被缓存的任何想法?
感谢您的所有答案。所有这些都是正确的,但我将其标记为我需要的答案,它在全球范围内解决了这个问题。 –
仅供参考来自文档:“如果设置为false,它将强制请求的页面不被浏览器缓存。将缓存设置为false还会将查询字符串参数”_ = [TIMESTAMP]“附加到URL。看到这个链接:http://api.jquery.com/jQuery.ajax/ – Joshua