tag route net for data asp all asp.net-mvc master-detail

asp.net-mvc - route - tag helpers asp net core



Ejemplo de ASP.NET MVC de editar mĂșltiples registros secundarios (2)

Creo que lo mejor que se puede hacer al respecto es usar publicaciones AJAX, siempre que el usuario haga clic en el botón Enviar, puede conectar ese evento, crear una matriz JSON de las cosas que desea conservar y enviarlas.

La otra manera, por supuesto, es obtener toda la información del objeto "FormCollection" en la acción POST. Solo necesita iterar a través de todas las claves para analizar los datos y luego procesarlos.

¿Alguien sabe de algún ejemplo o tutorial de una vista MVC que muestre datos de padres / hijos, todo en un solo formulario, y permite que todos los registros secundarios sean editables?

Por ejemplo, supongamos que tengo una tabla de personas y otra que contiene los vehículos que poseen. Una forma, quiero mostrar cada vehículo para una persona determinada y hacer que los elementos de datos sean editables (es decir, número de matrícula, color del automóvil, etc.) en caso de que haya errores. No quiero saltar a un formulario de edición por separado para cada vehículo.

Mis intentos hasta ahora me han llevado al punto en que puedo mostrar los datos, pero no puedo hacer que se publiquen en el controlador. He tratado de reducir el problema lo más que pude here , pero todavía no lo entiendo, y creo que un ejemplo más amplio puede estar en orden. ¿Algunas ideas?


Puedes intentar algo como esto.

Supongamos que tiene este objeto:

public class Vehicle { public int VehicleID { get; set; } public string LicencePlate { get; set; } public string Color { get; set; } }

Y esta es la acción de su controlador que usará para editar los detalles del vehículo (donde publicará el formulario):

[AcceptVerbs(HttpVerbs.Post)] public ActionResult EditVehicles(int Owner, Vehicle[] vehicles) { //manipulate the data, then return back to the list return RedirectToAction("YourAction"); }

Entonces deberías establecer tu forma de esta manera:

<!--have a form for each person, listing their vehicles--> <form action="/EditVehicles" method="post"> <input type="hidden" name="Owner" value="25" /> <input type="hidden" name="Vehicles[0].VehicleID" value="10" /> <input type="text" name="Vehicles[0].LicencePlate" value="111-111" /> <input type="text" name="Vehicles[0].Color" value="Red" /> <input type="hidden" name="Vehicles[1].VehicleID" value="20" /> <input type="text" name="Vehicles[1].LicencePlate" value="222-222" /> <input type="text" name="Vehicles[1].Color" value="Blue" /> <input type="submit" value="Edit" /> </form>

Esto ayudará a DefaultModelBinder a vincular correctamente los datos de formulario a su modelo en su controlador. Así Response.Write(vehicles[1].Color); en su controlador, imprimirá "Azul".

Este es un ejemplo muy simple, pero estoy seguro de que entiendes la idea. Para obtener más ejemplos sobre cómo vincular formularios a matrices, listas, colecciones, diccionarios, échale un vistazo here .