Asp.net mvc Ajax在mvc视图中显示div对话框

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

对ajax来说,这是一个新概念

我有一个部门:

   <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');
        }
    }
});