关闭jQuery模态对话框在MVC4应用程序

Close jQuery modal dialog in MVC4 app

本文关键字:MVC4 应用程序 对话框 jQuery 模态 关闭      更新时间:2023-09-26

我正在使用javascript在MVC4应用程序中创建一个jquery模态对话框。但是我无法关闭在提交ajax表单模态对话框内的对话框。

创建对话框链接:

@Html.RouteLink("Add item",
                        new
                        {
                            Action = "AddItem",
                            Controller = "User"
                        },
                        new
                        {
                            @class = "openDialog",
                            data_dialog_id = "addItemDialog",
                            data_dialog_title = "Add item",
                            title = "Add item"
                        })

addItem方法返回一个ajax表单(下面的代码)作为一个局部视图,它在模态对话框中呈现。使用Ajax,以便在提交时只更新页面的一部分:

@model WebApp.AppModels.UserAddItemModel
@using (Ajax.BeginForm("AddItem", "User", null, new AjaxOptions()
                                                        {
                                                            HttpMethod = "POST",
                                                            Url = Url.Action("AddItem", "User"),
                                                            InsertionMode = InsertionMode.Replace,
                                                            UpdateTargetId = "Item" 
                                                        }, new { id = "AddItemForm" }))
{
        @Html.AntiForgeryToken()
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>Add Item</legend>
            <ol>
                <li>
                    @Html.LabelFor(m => m.ItemName)
                    @Html.TextBoxFor(m => m.ItemName)
                    @Html.ValidationMessageFor(m => m.ItemName)
                </li>
            </ol>
                <input type="submit" class="left" value="Submit" name="action:submit-additem" />
                <input type="submit" class="right" value="Cancel" name="action:cancel-additem" />
        </fieldset>
}

提交表单调用addItem操作方法,并按预期替换div内容。但我也希望表单在提交时关闭。如果有什么建议就太好了。

将此参数添加到ajax begin form

@model WebApp.AppModels.UserAddItemModel
@using (Ajax.BeginForm("AddItem", "User", null, new AjaxOptions()
                                                            {
                                                                HttpMethod = "POST",
                                                                Url = Url.Action("AddItem", "User"),
                                                                InsertionMode = InsertionMode.Replace,
                                OnSuccess = "updateSuccess",
                                                                UpdateTargetId = "Item" 
                                                            }, new { id = "AddItemForm" }))
    {
            @Html.AntiForgeryToken()
            @Html.ValidationSummary(true)
            <fieldset>
                <legend>Add Item</legend>
                <ol>
                    <li>
                        @Html.LabelFor(m => m.ItemName)
                        @Html.TextBoxFor(m => m.ItemName)
                        @Html.ValidationMessageFor(m => m.ItemName)
                    </li>
                </ol>
                    <input type="submit" class="left" value="Submit" name="action:submit-additem" />
                    <input type="submit" class="right" value="Cancel" name="action:cancel-additem" />
            </fieldset>
    }
    function updateSuccess()
    {
    // closing code goes here
    }