Javascript 关闭MVC4应用程序中的jQuery模式对话框

Javascript 关闭MVC4应用程序中的jQuery模式对话框,javascript,asp.net-mvc-4,razor,Javascript,Asp.net Mvc 4,Razor,我正在使用javascript在MVC4应用程序中创建一个jquery模式对话框。但是在模式对话框中提交ajax表单时,我无法关闭对话框 创建对话框的链接: @Html.RouteLink("Add item", new { Action = "AddItem", Controller =

我正在使用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方法以partialview的形式返回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>
}
@model WebApp.AppModels.UserAddItemModel
@使用(Ajax.BeginForm(“AddItem”、“User”、null、new AjaxOptions())
{
HttpMethod=“POST”,
Url=Url.Action(“AddItem”、“User”),
InsertionMode=InsertionMode.Replace,
UpdateTargetId=“项目”
},新的{id=“AddItemForm”})
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
添加项
  • @LabelFor(m=>m.ItemName) @Html.TextBoxFor(m=>m.ItemName) @Html.ValidationMessageFor(m=>m.ItemName)
  • }

    提交表单将调用addItem操作方法,并按预期替换div内容。但我也希望表格在提交时关闭。任何建议都很好。

    在ajax begin表单中添加此参数

    @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
        }
    
    @model WebApp.AppModels.UserAddItemModel
    @使用(Ajax.BeginForm(“AddItem”、“User”、null、new AjaxOptions())
    {
    HttpMethod=“POST”,
    Url=Url.Action(“AddItem”、“User”),
    InsertionMode=InsertionMode.Replace,
    OnSuccess=“updateSuccess”,
    UpdateTargetId=“项目”
    },新的{id=“AddItemForm”})
    {
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    添加项
    
  • @LabelFor(m=>m.ItemName) @Html.TextBoxFor(m=>m.ItemName) @Html.ValidationMessageFor(m=>m.ItemName)
  • } 函数updateSuccess() { //结束代码在这里 }
    太棒了。这是缺失的一环。这篇文章帮助完成了updateSuccess方法:,即$(“#modaldialdialog”).dialog(“close”);