Asp.net mvc Ajax在mvc视图中显示div对话框
对ajax来说,这是一个新概念 我有一个部门:Asp.net mvc Ajax在mvc视图中显示div对话框,asp.net-mvc,jquery,Asp.net Mvc,Jquery,对ajax来说,这是一个新概念 我有一个部门: <div id="authentication" title="Authentication" > <b>Please Generate a new token to continue!</b> <br /><br /> <table> <tr> <td>Token:</td&g
<div id="authentication" title="Authentication" >
<b>Please Generate a new token to continue!</b>
<br /><br />
<table>
<tr>
<td>Token:</td>
<td><input type="text" id="txtToken"/></td>
</tr>
<tr>
<td></td>
<td><label id="lblError"></label></td>
</tr>
</table>
</div>
但是,当代码变为success且result==result时,对话框将被销毁,但div(对话框)将显示在我的视图上,这是我不希望看到的。我做错了什么?关闭对话框,然后销毁。这将完全隐藏对话框,然后销毁其对话框功能。如果只执行
.dialog('destroy')
操作,它将完全删除对话框功能,并按页面上的原样显示元素,但不会隐藏
success: function (result) {
if(result==true)
{
$('#authentication').dialog('close').dialog('destroy');
}
else{
$('#lblError').html("Incorrect credentials. Please try again");
}
},
另一件事是beforeclose:function(){return false;},
您正在返回false,这将阻止关闭事件的发生。虽然您可以安全地将其删除,但在关闭前应将其设置为
如果上述操作不起作用,另一个删除div的选项是订阅close
事件:-
$('#authentication').dialog({
autoOpen: true,
width:500,
resizable: false,
title: 'Authentication',
modal: true,
close:function(){
$(this).dialog('destroy').hide();
},
buttons: {
"Cancel": function () {
},
"Submit": function () {
var token=$('#txtToken').val();
var dlg = $(this);
$('#authentication').dialog('close');
}
}
});
如果您可以复制,如果上述解决方案无法解决,这将有助于解决问题。您是否知道是否可以将对话框中的数据发送到视图,但对用户隐藏(例如隐藏标签/文本框)?是否要将其发送到同一页面中的视图或控件?查看以便我可以将其发送到控制器您可以在close
事件上执行ajax调用,并传递Json POST数据或从对话框中获取数据,获取部分视图并更新页面。像这样访问值$(this)。在close
回调函数中查找('#txtToken')val()
。
$('#authentication').dialog({
autoOpen: true,
width:500,
resizable: false,
title: 'Authentication',
modal: true,
close:function(){
$(this).dialog('destroy').hide();
},
buttons: {
"Cancel": function () {
},
"Submit": function () {
var token=$('#txtToken').val();
var dlg = $(this);
$('#authentication').dialog('close');
}
}
});