在使用ajax进行序列化和提交后,无法更新html表单



我正在用ajax发布一个序列化的表单(实际上问题是表单中的一个数组(。在服务器成功处理了我的请求后,它会返回带有更新值的部分视图(html(,在这里一切似乎都很好。但在前端,我收到了部分更新的html——现有输入中的旧值保持不变(就像在序列化版本中一样(,并添加了新项(如果有的话(。如果我删除序列化,效果会很好。

这是我的ajax调用:

var form = $('#rentPayments');
$.ajax({
url: '@Url.Action("RecalculateRentPayments", "OwnerArea")',
type: 'POST',
data: form.serialize(),
success: function (result) {
form.replaceWith(result);
},
error: function (xhr, ajaxOptions, thrownError) {
var exception = JSON.parse(xhr.responseText);
alert(exception.Message);
}
});

这是我在服务器上的东西:

var rentPayments = _rentPaymentsService.RecalculatePayments(dto);
return PartialView("RentPayments", rentPayments);

如何实现接收具有完全更新值的html?提前感谢

好的,所以问题在于模型状态,模型状态保持不变,因为我认为方法是POST/PUT,ASP.NET没有更新我传递给前端的部分视图上的现有值,而是只添加或删除了其中的项。

解决方案是在将模型传递到视图之前使用ModelState.Clear((来完全更新视图上的值。[链接到来源]

最新更新