Pregunta

Tengo una vista en la que utilizo una de denominación de convenio sobre mis campos de texto, para indicar qué se debe hacer con el contenido una vez que se devuelve al controlador.

El formato es similar a:

<input type="text" name="RegistrationLine#ID" /> actualizaciones

<input type="text" name="CreateRegistrationLine#LineNumber" /> para crear

Ahora ya estoy usando esta convención de denominación, modelo vinculante regular no es posible. Pero he estado leyendo un poco sobre el tema y pareció un poco de una indicación de que sería posible escribir un ligante modelo personalizado, que debería ser capaz de ayudar a analizar y enlazar estos elementos de forma y crear instancias de los objetos correctamente.

Por favor lea: Enlazar formValue a la propiedad de los diferentes nombre, ASP.NET MVC

Esto es un poco similar a lo que estoy haciendo con excepción, no tengo la complejidad adicional de contar con información anexa en el formelement-nombre que estoy tratando de obligar a.

¿Estoy fuera de lugar aquí? y si no, puede cualquiera de caerle unas pocas líneas de código para mostrar cómo sería empezar este modelo aglutinante fuera ..

Si esta es una muy mala aproximación a lo que yo estoy tratando de lograr, me gustaría escuchar sugerencias para obtener mejores aproximaciones. Ten en cuenta que lo que yo quiero ser capaz de hacer es segundo palo ambas actualizaciones y crea una sola vez.

¿Fue útil?

Solución

La clase I que estar de acuerdo con @jfar y @omar. No creo que un ligante modelo personalizado es donde quieres estar en este caso.

Puede pasar un tipo complejo a la vista y simplemente utilizar el punto final como @jfar mencionado.

id="Model.Person.Name.FirstName" estará feliz de unirse a una persona nombrada objeto que tiene una clase, que se llama nombre que tiene una propiedad llamada FirstName.

Ahora bien, si usted quiere hacer algunas comprobaciones especiales sobre los datos que se podría implementar una clase parcial que hacer las validaciones, etc y poblar los errores ModelState.

public partial class Name
{
  public void Validate(){ }
  public int CreateRegistrationLine(){ }
  public bool DoSpecialActions(){ }
}

Es un poco claro cuáles son sus acciones especiales están haciendo así que mi ejemplo anterior puede ser lo que quieres.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top