我有一个包含多个部分的视图。我想使用局部视图和ajax来逐个更新各个部分。
到目前为止,我已经做了以下工作:
控制器:
[HttpPost]
public PartialViewResult userdetailssettings(UserDetails model)
{ .... }
查看 HTML:
<div id="userDetailsPartial">
@Html.Partial("_user_details", Model.userdetails)
</div>
部分 HTML:
<div class="form-group">
<div class="col-md-12">
@Html.TextBoxFor(x => x.Forename, new { @class = "form-control", placeholder = "Enter your forename" })
@Html.ValidationMessageFor(x => x.Forename)
</div>
</div>
<div class="form-group">
<div class="col-md-12">
@Html.TextBoxFor(x => x.Surname, new { @class = "form-control", placeholder = "Enter your surname" })
@Html.ValidationMessageFor(x => x.Surname)
</div>
</div>
JavaScript在视图中:
var detailsUrl = "@Url.Action("userdetailssettings", "UserLogin")";
var detailsmodel = JSON.stringify(@Html.Raw(Json.Encode(@Model.userdetails)));
$(document).on('click touchstart', '#saveDetails', function () {
$.ajax({
type: "POST",
dataType: 'json',
data: detailsmodel,
url: detailsUrl,
contentType: "application/json"
}).done(function (res) {
$("#userDetailsPartial").html(res);
addresssearch();
});
});
模型通过ajax传递给控制器,但值并不是输入框中的值。它们是从控制器传递给视图的原始值。
我尝试使用`
var detailsmodel = JSON.stringify ...
在生成视图时设置,并且不会更改。 - freedomn-m