¿Cuál es el comportamiento correcto de UpdateModel en ASP.NET MVC?

Estoy interesado en saber lo que ustedes sienten que debe considerarse como "comportamiento correcto" en términos deUpdateModel Método en ASP.NET MVC.

La razón por la que pregunto aquí es tal vez si esta funcionalidad es "por diseño", alguien podría aclarar por qué es así, y tal vez una forma de llamarlo de manera diferente para lograr la funcionalidad deseada, lo cual me imagino que sería la forma de hacerlo. ¿% de la gente querría que esto funcione?

En esencia, mi queja radica en el comportamiento del proceso de unión dentro deUpdateModel.

Suponiendo que desea actualizar un formulario a través de un simpleSave método de acción para el cual los campos de datos en el formulario reflejan un modelo en su base de datos, inicialmente para guardar la solicitud, podríamos obtener el modelo existente de la base de datos y luego actualizar los campos relevantes que se cambiaron, enviados a través deFormCollection y luego actualizado porUpdateModel a nuestro modelo existente. Esta función, sin embargo, parece que cualquiera de las propiedades existentes en este objeto rellenado con base de datos se está "restableciendo"; y con eso quiero decir, se están configurando en nulo o valores de inicialización como si fuera un objeto completamente nuevo, a excepción de aquellos que coinciden con los de laFormCollection.

Esto es un problema porque todas las propiedades existentes que existen en el objeto, pero no necesariamente existen en el formulario, como las colecciones u objetos secundarios, las fechas o los campos que no están orientados a la interfaz de usuario están vacíos, lo que le deja un medio lleno, más o un objeto menos inutilizable que no se puede guardar en la base de datos debido a que faltan todos los datos, incluida probablemente una pila de ID ahora establecida en 0.

Creo que este no es un comportamiento deseable, yUpdateModel solo debe actualizar las propiedades donde encuentre una propiedad coincidente enFormCollection. Esto significaría que todas sus propiedades existentes no se tocarían, pero sus actualizaciones se establecerían. Sin embargo, a partir de lo que se ha deducido hasta ahora, obviamente este no es el caso;nueva copia del objeto actualiza las propiedades del formulario y luego devuelve el nuevo objeto.

Finalmente, para ponerlo en perspectiva de cuánta carga es esto, la única manera realmente de evitarlo a la mitad de una forma compleja y mantener todos los datos de objetos existentes es casarlos manualmente.cada propiedad con la propiedad de formulario correspondiente para garantizar absolutamente que solo se actualizan las propiedades que existen en el formulario.

Supongo,

Aquellos que están de acuerdo en que esto es por diseño, ¿es mi enfoque de la forma de casarse de la mejor manera?O, ¿cómo has abordado esto en esto?

Por favor, siéntase libre de ofrecer sus opiniones sobre estos chicos, Gracias.

Aquí hay otra instancia de alguien que sufre de este problema:
¿Llamar a UpdateModel con una colección de tipos de datos complejos restablece todos los valores no vinculados?

Respuestas a la pregunta(4)

Su respuesta a la pregunta