我正在嘗試使用Ajax.BeginForm。當我提交時,我想渲染一個局部視圖。一切工作正常,但InsertionMode = InsertionMode.Replace不起作用,它會在新窗口中打開局部視圖。ASP.NET MVC 3 Ajax.BeginForm重定向到新窗口
我也有一個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);
}
}
謝謝!
頁面上是否有「div_to_replace」作爲ID的元素?它不在您提供的代碼中。當我過去使用這個時,我不需要InsertionMode.Replace。 – krillgar
我有div_to_replace作爲ID的元素...我將編輯我的帖子與此更改。 –
瀏覽器控制檯是否顯示任何錯誤? – BrunoLM