从asp.net mvc局部视图窗体中关闭JqueryUI对话框

时间:2011-04-12 15:23:11

标签: jquery asp.net-mvc jquery-ui asp.net-mvc-3

我有以下部分观点:

@using (Ajax.BeginForm("EditUserRole", "Administrator", null, new AjaxOptions{ OnSuccess = "CloseWnd()"))
{
    <input type="submit" class="jqBtn" />
}

我通过ajax得到它并将其插入到这样的对话框中:

@Ajax.ActionLink(" ", "GetEditUserRoleControl", new { userId = x.UserId }, new AjaxOptions { UpdateTargetId = "WndContent", OnSuccess="OpenWnd('Edit User Roles')" }, new { @class = "ui-icon ui-icon-person BtnIcon" })

<div id="WndContent" style="display: none;">

</div>

<script>
function OpenWnd(title) {
   var $dialog = $("#WndContent").dialog({ title: title, modal: true });
   //get the widget element
   var $widg = $dialog.dialog('widget');
   //find all buttons and apply button:
   $("input:submit.jqBtn", $widg).button();

}
</script>

提交表格后我需要关闭包装盒。但似乎我将在部分控件中编写依赖于对话框的代码。我也不想使用内置的jquery按钮,因为我必须从我的部分表单中删除按钮。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以查看表单的内容,并绑定到提交功能。

$("form", $widg).submit(function(){
    /* submit callback */
});

这将告诉您何时提交表单,而不是在ajax提交状态时。

我的建议是使用dialog按钮(因为这是设计使用该对话框的方式)并修改视图以选择性地渲染按钮。您可以通过操作链接传递另一个键modalView=true