我正在使用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
});
}
答案 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")');
}