我正在尝试使用 Ajax.BeginForm。当我提交时,我想渲染一个局部视图。一切正常,但 InsertionMode = InsertionMode.Replace 不起作用,它会在新窗口中打开部分视图。
我在同一页面中也有一个 Ajax.ActionLink,它工作正常。
我已经添加了 jquery.unobtrusive-ajax.js,但它仍然不起作用。另外,在 web.config 我有
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
这是我的视图代码:
<div id="div_to_replace">
@using (Ajax.BeginForm("Edit", "MyController", new AjaxOptions { HttpMethod = "POST", InsertionMode = InsertionMode.Replace, UpdateTargetId = "div_to_replace" })){
<div class="editor-field">
@Html.EditorFor(model => model.name)
@Html.ValidationMessageFor(model => model.name)
</div>
<input type="submit" value="Save" />
}
</div>
我的控制器:
[HttpPost]
public ActionResult Edit(MyObject object)
{
try
{
if (ModelState.IsValid)
{
updateModel(object)
return PartialView("_MyPartilView", model);
}
else
{
return PartialView(object);
}
}
catch
{
return PartialView(object);
}
}
谢谢!