여러 섹션이있는보기가 있습니다. 부분 뷰와 아약스를 사용하여 개별적으로 섹션을 업데이트하고 싶습니다.ajax MVC를 사용하여 복잡한 객체 전달
지금까지이 있습니다
컨트롤러 :
[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>
자바 스크립트 :
모델이 아약스에 의해 컨트롤러로 전달되지만 값은 입력 값이 아닙니다. 뷰를 열기 위해 컨트롤러에서 전달 된 원래 값입니다.
태그에서 부분적으로 줄 바꿈을 시도하고 부분 내에 양식 태그를 추가하려고했습니다. 나는 또한이 코드를 넣어 시도
: 클릭 기능 내부
var detailsUrl = "@Url.Action("userdetailssettings", "UserLogin")";
var detailsmodel = JSON.stringify(@Html.Raw(Json.Encode(@Model.userdetails)));
.
업데이트 된 값을 입력으로 전달하지 않습니다.
내가 자바 스크립트 즉
var detailsmodel = [ { Forename: $('#Forename').val(), Surname: $('#Surname').val() } ];
에 입력에서 모델의 새로운 인스턴스를 만드는 생각하지만 난 그냥 JSON을 생성하고 있다면 왜 그냥 JSON으로 바인딩 모델을 변환 할 수 없습니다.
* "왜 MVC가 아닌 MVC를 사용하기 때문에 바인딩 된 모델을 json으로 변환 할 수 있습니까?" "바운드 모델"은 컨트롤러에서 모델을 통한 뷰까지의 한 가지 방법입니다. "바운드 모델"이라는 용어를 "모델"과 "바인딩"으로 혼합합니다. 양식을 POST하면 모델을 얻을 수 있지만 아약스를 통해 전달하는 경우 양식의 현재 값을 가져와야합니다 ('입력에서 모델의 새 인스턴스 작성'과 같이). 당신의'var detailsmodel = JSON.stringify ... '는 뷰가 생성되고 변경되지 않을 때 설정됩니다. –
설명해 주셔서 감사합니다. 나는 모델의 새로운 인스턴스를 만들기 위해 삼킬 것이다. 당신이 당신의 코멘트를 대답한다면 나는 받아 들일 것입니다. 다시 한번 감사드립니다. –