多次在jQuery对话框中加载局部视图
我正在使用jQuery对话框创建新客户。第一次打开对话框时,它调用控制器操作方法来创建新的客户模型。对话框的后续加载不会调用Action方法,这不是我想要的 我需要在关闭时正确处理对话框,或者在加载时强制重新创建对话框。不管我做什么都不行多次在jQuery对话框中加载局部视图,jquery,asp.net-mvc,asp.net-mvc-4,jquery-dialog,Jquery,Asp.net Mvc,Asp.net Mvc 4,Jquery Dialog,我正在使用jQuery对话框创建新客户。第一次打开对话框时,它调用控制器操作方法来创建新的客户模型。对话框的后续加载不会调用Action方法,这不是我想要的 我需要在关闭时正确处理对话框,或者在加载时强制重新创建对话框。不管我做什么都不行 <script type="text/javascript"> $(function () { $('#dialog').dialog({ autoOpen: false, w
<script type="text/javascript">
$(function () {
$('#dialog').dialog({
autoOpen: false,
width: 400,
resizable: false,
title: 'New Customer',
modal: true,
open: function(event, ui) {
$(this).load("@Url.Action("CreateCustomerPartial")");
},
buttons: {
"Close": function () {
$(this).dialog("close");
}
}
});
$('#my-button').click(function () {
$('#dialog').dialog('open');
});
});
</script>
<div id="dialog" title="Create Customer" style="overflow: hidden;">
修复-这是IE缓存ajax请求的问题,与jQuery对话框无关 禁用ajax缓存实现了以下目的:
$.ajaxSetup{cache:false} 这是什么意思。load@Url.ActionCreateCustomerPartial; 在服务页面中看起来如何?它确定操作方法MVC-$this.load/MyApplication/MyController/MyAction的url路径;从客户端的角度来看,代码看起来不错。尝试添加一个“完整”回调来检查服务器是否响应/如何响应-如果Ajax请求在的文档中遇到错误,请参阅显示通知。我设法找到了答案。问题在于IE缓存,而不是jQuery对话框。可以使用$.ajaxSetup{cache:false};$禁用它。ajaxSetup{cache:false}有点极端,因为它会影响代码中其他地方的任何其他ajax请求,而不仅仅是这一个。我建议使用低级的$.ajax,它允许您指定cache:false作为选项。您必须自己管理将响应插入到$this中,但这并不难。好提示。谢谢你的帮助。