La validación del modelo ocurre automáticamente durante el enlace; en ese momento, la propiedad Continente es nula. Establece la propiedad más tarde, pero el estado del modelo no se vuelve a evaluar cuando marca IsValid. Veo tres opciones:
- Rápido y sucio: quite la validación requerida de Continent y valide Continent_Id en su lugar, agregando una verificación en el controlador para garantizar que se recupere un continente válido de Find ().
- La mayoría del trabajo: crear un archivador de modelo personalizado para usar el Continent_Id para recuperar y poblar el Continente. Ya casi está allí en este caso, ya que tener Continent_Id y Continent como propiedades de Country es redundante y una oportunidad para inconsistencias.
- Probablemente la mejor opción: haga que su controlador acepte un modelo de vista que solo tenga los datos que espera que regresen del formulario y complete un objeto Country a partir de él.
Use el siguiente código para recorrer los errores. Luego puede ver qué campo y qué objeto falla en la validación. Y luego puedes ir desde allí. Solo mirar la propiedad IsValid no dará suficiente información.
errores var = ModelState.Values.SelectMany (v => v.Errors);
- He estado usando PHP por más de 10 años y me encanta; ¿Tengo que probar otro lenguaje de programación del lado del servidor para sentir la diferencia?
- Tengo un sitio web estático. Estoy planeando convertir ese sitio a WordPress. ¿La conversión de un sitio web estático a WordPress afecta a SEO?
- Aprendería Angular 2 practicando, ¿dónde puedo encontrar sitios gratuitos?
- Cómo publicar páginas HTML en Internet y hacer que un sitio web funcione
- Ahora estoy trabajando como analista de pruebas y quiero aprender algunas herramientas relacionadas que tienen un buen valor. Los he reducido a Selenium y LoadRunner. ¿Cuál es la mejor opción?