我正在尝试通过文本字段更新数据库中的值而不重新加载网页。问题是当我从控制器返回时。我已经使用Void
(在发布后给我一个空白页)和partialView进行了测试,但返回后没有显示其余的布局。
我是否需要使用partialview?
这是我现在的代码。
控制器
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult ChangeHeaderName(Room room)
{
if (ModelState.IsValid)
{
db.Entry(room).State = EntityState.Modified;
db.SaveChanges();
return PartialView("_UpdateHeader", room);
}
return View(room);
}
主视图
<div>
@Html.Partial("_UpdateHeader")
</div>
PartialView
@using (Ajax.BeginForm("ChangeHeaderName", "Rooms",
new AjaxOptions
{
UpdateTargetId = "targetDiv",
OnSuccess = "OnSuccess",
OnFailure = "OnFailure"
}, null, new { headerValue = "test" }))
{
<h2>@Html.EditorFor(m => m.Name, new { htmlAttributes = new { @id = "room-", @class = "button" } })</h2>
}
<script>
function OnSuccess() {
alert('Success');
}
function OnFailure(ajaxContext) {
var response = ajaxContext.get_response();
var statusCode = response.get_statusCode();
alert('Failure');
$('#targetDiv').empty();
}
</script>
我没有收到来自javascript的任何提醒!
如何在不重新加载页面的情况下发布到我的控制器?我的保存功能正常。