Asp.net mvc IE8中jQueryUI弹出窗口内的ajax表单问题
我在试验jQuery UI和MVC3时偶然发现了以下问题: 我有一个使用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> 和
<%: 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中,我看到了以下问题:
谢谢 试试这个,第一次可以,但第二次不行。每次创建新对话框,完成后销毁它
<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>