0

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

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

 $("#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
        });
    }
4

3 回答 3

1

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

$("#modify").load('@Url.Action("ModifyDuration", "ViewWork")');
于 2013-01-27T17:20:26.963 回答
1

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

$("#modify").click(function () {
    $("#workList").load('/ViewWork/ModifyDuration');
}
于 2013-01-27T17:26:10.430 回答
0

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

$("#modify").click(function () {
    $("#workList").load('@Url.Action("ModifyDuration", "ViewWork")');
}
于 2013-01-28T23:36:09.997 回答