Tengo una pantalla que tiene dos vistas parciales.
Puedo pasar con éxito las opciones seleccionadas al controlador a través de ajax, que luego devuelve una vista parcial para reemplazar el html de la vista parcial 2, pero pierde todas las filas ya que no tiene contexto de los datos del modelo de vista original.
Intenté colocar el modelo de vista en un campo oculto en la vista de índice y pasar el objeto secundario relevante como json a través de ajax, pero supera la longitud máxima de JSON. "La longitud de la cadena supera el valor establecido en la propiedad maxJsonLength".
Ver modelo
[JsonIgnore] public string MyListJson { get { return JsonConvert.SerializeObject(MyList); } }Índice.vbhtml
@Code Html.RenderPartial("_Selection", Model) End Code <div id="TargetDiv"> @Code Html.RenderPartial("_DataList", Model.MyList) End Code </div> @Html.Hidden("hdnViewModelJson", Model.MyList))javascript.js
$.ajax({ type: "POST", url: 'Main/UpdateRows', contentType: 'application/json', data: { testList : $('#hdnViewModelJson').val() }, success: function (data) { alert("success") $("#TargetDiv").html(data) } });Controlador principal
Public Function UpdateRows(testList as MyListType) //Maniupulate rows based on parameters Return PartialView("_ListSchemeBoardType",testList ) End Function¿Hay una mejor manera de actualizar parte del modelo de vista Partial View 2s sin tener que volver a proporcionarlo?
¿Cómo obtengo los datos del modelo de vista en el controlador si no es así?