Javascript 关闭MVC4应用程序中的jQuery模式对话框
我正在使用javascript在MVC4应用程序中创建一个jquery模式对话框。但是在模式对话框中提交ajax表单时,我无法关闭对话框 创建对话框的链接: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 =
@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”);