Newtonsoft를 사용하여 객체를 json 문자열로 역 직렬화 한 다음 숨겨진 필드에 삽입하는 것은 어떻습니까? 예를 들어 ( Model.DataResponse.Entity.Commission 은 JSON에서 볼 수있는 간단한 "CommissionRange" 객체 목록 입니다 )
@using (Ajax.BeginForm("Settings", "AffiliateProgram", Model.DataResponse, new AjaxOptions { UpdateTargetId = "result" }))
{
string commissionJson = JsonConvert.SerializeObject(Model.DataResponse.Entity.Commission);
@Html.HiddenFor(data => data.DataResponse.Entity.Guid)
@Html.Hidden("DataResponse_Entity_Commission", commissionJson)
[Rest of my form]
}
다음과 같이 렌더링합니다.
<input id="DataResponse_Entity_Commission" name="DataResponse_Entity_Commission" type="hidden" value="[{"RangeStart":0,"RangeEnd":0,"CommissionPercent":2.00000},{"RangeStart":1,"RangeEnd":2,"CommissionPercent":3.00000},{"RangeStart":2,"RangeEnd":0,"CommissionPercent":2.00000},{"RangeStart":3,"RangeEnd":2,"CommissionPercent":1.00000},{"RangeStart":15,"RangeEnd":10,"CommissionPercent":5.00000}]">
제 경우에는 다시 게시하기 전에 숨겨진 필드에서 json을 편집하기 위해 JS 작업을 수행합니다.
내 컨트롤러에서 Newtonsoft를 다시 사용하여 역 직렬화합니다.
string jsonCommissionRange = Request.Form["DataResponse_Entity_Commission"];
List<CommissionRange> commissionRange = JsonConvert.DeserializeObject<List<CommissionRange>>(jsonCommissionRange);
<input />
s 측면에서 원하는 출력은 무엇입니까 ?