更新MVC3局部视图

时间:2013-01-27 16:22:29

标签: jquery asp.net-mvc asp.net-mvc-3 partial-views

我正在使用MVC C#和Jquery。 我有一个部分视图,每次用户修改视图中的某些数据时都需要更新。问题是部分视图没有更新。如何更新局部视图?

部分视图(WorkReport)中的jquery代码

 $("#modify").click(function () {
    var duration = $("#newDuration").val();
    var date_param = $("#dateParam").val();
    $.ajax({
        url: '@Url.Action("ModifyDuration", "ViewWork")',
        type: 'post',
        data: { newDuration: duration, id: psm_id, date: date_param },
        dataType: 'text',
        traditional: true,
        beforeSend: function (jqXHR, settings) {
            $.mobile.showPageLoadingMsg();
        },
        success: function (data) {
            $("#workList").html(data).trigger('create');
            $.mobile.hidePageLoadingMsg();
        },
        error: function (jqXHR, exception) {
            if (jqXHR.status === 0) {
                alert('Not connect.\n Verify Network.');
            }
        }
    });
});

控制器代码:

[HttpGet]
    public PartialViewResult GetWorkList(string date)
    {
        model.workList = workList;
        return PartialView("WorkReport", model);

    }

 [HttpPost]
    public ActionResult ModifyDuration(string newDuration, string id, string date)
    {
        DataOperation dataOperation = new DataOperation();
        dataOperation.UpdateWorkDuration(newDuration, id);
        return RedirectToAction("GetWorkList", new
        {
            date = date
        });
    }

3 个答案:

答案 0 :(得分:1)

您可以使用this,但请确保选择正确的页面。或使用加载

$("#modify").load('@Url.Action("ModifyDuration", "ViewWork")');

答案 1 :(得分:1)

我使用以下方法在JQuery中加载Partials已经取得了更大的成功:

$("#modify").click(function () {
    $("#workList").load('/ViewWork/ModifyDuration');
}

答案 2 :(得分:0)

硬编码路径(链接)是一个坏主意,所以总是使用@Url.Action()方法。你的代码应该是

$("#modify").click(function () {
    $("#workList").load('@Url.Action("ModifyDuration", "ViewWork")');
}