¿Es posible enlazar una relación de clave externa en mi modelo a una entrada de formulario?Relación de clave externa de vinculación de modelo ASP.NET MVC
Supongamos que tengo una relación uno a muchos entre Car
y Manufacturer
. Deseo tener un formulario para actualizar Car
que incluye una entrada de selección para configurar Manufacturer
. Esperaba poder hacer esto usando el enlace de modelo incorporado, pero estoy empezando a pensar que tendré que hacerlo yo mismo.
Mi acción método de firma se ve así:
public JsonResult Save(int id, [Bind(Include="Name, Description, Manufacturer")]Car car)
Las formulario vuelve a los valores de nombre, descripción y del fabricante, donde Fabricante es una clave principal de tipo int
. El nombre y la descripción se configuran correctamente, pero no el fabricante, lo cual tiene sentido ya que el archivador modelo no tiene idea de cuál es el campo PK. ¿Eso significa que tendría que escribir un IModelBinder
personalizado que lo tenga en cuenta? No estoy seguro de cómo funcionaría, ya que mis repositorios de acceso a datos se cargan a través de un contenedor IoC en cada constructor Controller
.
¡Un ejemplo muy útil! Sin embargo, una idea que puedo sugerir es usar la interfaz 'IModelBinderProvider' para apuntar a este modelo de carpetas para los tipos de modelo en lugar de verificar dentro del cuaderno. Brad Wilson escribió sobre esto [aquí] (http://bradwilson.typepad.com/blog/2010/10/service-location-pt9-model-binders.html). –
sí, sería genial. No he actualizado a MVC3 todavía, sin embargo. –