Qué acerca del uso Newtonsoft deserializar el objeto en una cadena JSON y luego insertar en que su campo oculto, por ejemplo (Model.DataResponse.Entity.Commission es una lista de sencilla "CommissionRange" objetos como se verá en el JSON)
@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]
}
Renders como:
<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}]">
En mi caso, hago algunas cosas JS para editar el json en el campo oculto antes de publicar de nuevo
En mi controlador, entonces utilizar Newtonsoft nuevo deserializar:
string jsonCommissionRange = Request.Form["DataResponse_Entity_Commission"];
List<CommissionRange> commissionRange = JsonConvert.DeserializeObject<List<CommissionRange>>(jsonCommissionRange);
Normalmente, no se ocultan listas completas como esa. ¿Cuál es su salida deseada en términos de '' s? –
¿qué contiene 'MyList'? 'HiddenFor' solo se usa para una entrada a la vez. –
¿Qué tipo es 'Model.MyList'? Es posible que deba realizar una serialización/deserialización en su lista de forma manual. –