通过文本字段更新数据库中的值而不重新加载页面?

时间:2016-02-18 12:28:23

标签: javascript jquery ajax asp.net-mvc-4

我正在尝试通过文本字段更新数据库中的值而不重新加载网页。问题是当我从控制器返回时。我已经使用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的任何提醒!

如何在不重新加载页面的情况下发布到我的控制器?我的保存功能正常。

0 个答案:

没有答案