Tengo clases de modelo en Linq-to-Sql con clases parciales marcadas con atributos de anotación de datos y una referencia a xVal.ASP.NET MVC Model/ViewModel Validation
Cuando vinculo una vista directamente a un modelo todo funciona bien, tanto el JS generado por xVal como el lado del servidor hacen una doble comprobación.
Muchas de mis vistas no aceptan entradas para un modelo específico, así que estoy configurando ver clases de modelos. En lugar de exponer una instancia de modelo completa, expongo las propiedades en el modelo que permití/necesito establecer por la vista.
// foo model
public class Foo {
public string FooField { ... }
public Bar Bar { ... }
}
// bar model, where bar is a parent relationship of foo in the db
public class Bar {
public string BarField { ... }
}
// view model stuff
public class FooViewModel {
private Foo foo;
public FooViewModel() {
foo = new Foo() { Bar = new Bar() };
}
public Foo Model {
get { return foo; }
set { foo = value; }
}
public string BarField {
get { return foo.Bar.BarField; }
set { foo.Bar.BarField = value; }
}
public string ExtraViewModelField {
get; set;
}
}
Este enfoque rellena la clase de modelo de vista correctamente y el repositorio puede rellenar el registro correctamente.
Sin embargo, no realiza la validación. He visto el código del cliente emitido y la matriz de validación está vacía para xval. Además, la verificación del lado del servidor para IsValid siempre es verdadera.
¿Puedo hacer que las anotaciones de datos extraigan las propiedades del modelo de vista para validación como esta, o debería hacerlo de otra manera?
por favor marque la respuesta en esto si contestó su pregunta –