Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc IE8中jQueryUI弹出窗口内的ajax表单问题_Asp.net Mvc_Jquery Ui_Jquery_Asp.net Mvc 2 - Fatal编程技术网

Asp.net mvc IE8中jQueryUI弹出窗口内的ajax表单问题

Asp.net mvc IE8中jQueryUI弹出窗口内的ajax表单问题,asp.net-mvc,jquery-ui,jquery,asp.net-mvc-2,Asp.net Mvc,Jquery Ui,Jquery,Asp.net Mvc 2,我在试验jQuery UI和MVC3时偶然发现了以下问题: 我有一个使用AJAX的非常基本的页面 <%: Ajax.ActionLink("Edit", "Edit", new { id = 1 }, new AjaxOptions() { UpdateTargetId = "dialog", OnSuccess = "DisplayPopup" }, null)%> <div id="dialog" title="Location"> </div> 和

我在试验jQuery UI和MVC3时偶然发现了以下问题:

我有一个使用AJAX的非常基本的页面

<%: Ajax.ActionLink("Edit", "Edit", new { id = 1 }, new AjaxOptions() { UpdateTargetId = "dialog", OnSuccess = "DisplayPopup" }, null)%>

<div id="dialog" title="Location">

</div>
和局部视图编辑:

<b>whatever</b>

<% using (Ajax.BeginForm("Edit", "Home",
    new AjaxOptions()
    {
        UpdateTargetId = "editForm",
        HttpMethod = "POST"
    }))
{%>
<div id="editForm">
    <input type="submit" value="Save" />
</div>
    <% } %>
不管怎样 上面的代码运行良好

现在我添加jquery UI弹出代码:

<script type="text/javascript">
    function DisplayPopup() {
        $('#dialog').dialog('open');
    }

    $('#dialog').dialog({
        autoOpen: false,
        width: 600,
        modal: true,
        buttons: {
            "Close": function () {
                $(this).dialog("close");
            }
        }
    });
</script>

函数DisplayPopup(){
$('dialog')。dialog('open');
}
$('#dialog')。dialog({
自动打开:错误,
宽度:600,
莫代尔:是的,
按钮:{
“关闭”:函数(){
$(此).dialog(“关闭”);
}
}
});
在Firefox和Chrome中,它工作正常,而在IE8中,我看到了以下问题:

  • 单击edit-进行AJAX调用编辑(int-id)操作,并在弹出窗口中显示编辑视图
  • 单击save-对Edit()进行AJAX调用并显示文本“Saved!”
  • 关闭弹出窗口
  • 再次单击edit-AJAX调用编辑(int-id)
  • 单击保存-这一次它将进行完整的回发(仅在IE中)
  • 有什么想法吗


    谢谢

    试试这个,第一次可以,但第二次不行。每次创建新对话框,完成后销毁它

    <script type="text/javascript">
        function DisplayPopup() {
            $('#dialog').dialog({
            autoOpen: true,
            width: 600,
            modal: true,
            buttons: {
                "Close": function () {
                    $(this).dialog("close");
                }
            }, close: function() {
                    $(this).dialog("destroy");
    
                }
        });
        }
    
    
    </script>
    
    
    函数DisplayPopup(){
    $('#dialog')。dialog({
    自动打开:对,
    宽度:600,
    莫代尔:是的,
    按钮:{
    “关闭”:函数(){
    $(此).dialog(“关闭”);
    }
    },关闭:函数(){
    $(此).dialog(“销毁”);
    }
    });
    }
    
    我也有同样的问题:在FF工作,但不是在IE8工作

    尝试向部分视图响应添加内容

    我在IE中也遇到了同样的问题,最后将
    @ViewBag.Message
    添加到部分视图响应中,其中
    ViewBag.Message=“Submitted”+DateTime.Now.ToLongTimeString()已在控制器的Post中分配


    这突然令人惊讶地导致部分视图在正确的目标元素中呈现,而不是在IE8中作为新页面加载视图。

    我刚刚对thickbox()做了同样的操作取代了jQuery UI弹出窗口,它在所有三种浏览器中都运行良好…看起来jqueryUI模态对话框可能有问题-我在这里提交了一个错误通知单,尝试在关闭事件中销毁对话框,并在displaypopup函数中每次创建新的对话框
    <script type="text/javascript">
        function DisplayPopup() {
            $('#dialog').dialog({
            autoOpen: true,
            width: 600,
            modal: true,
            buttons: {
                "Close": function () {
                    $(this).dialog("close");
                }
            }, close: function() {
                    $(this).dialog("destroy");
    
                }
        });
        }
    
    
    </script>