我有Linq-to-Sql中的模型类,部分类标有数据标注属性和对xVal的引用。ASP.NET MVC模型/ ViewModel验证
当我直接将视图绑定到模型时,一切都很好,xVal和服务器端生成的JS都会进行双重检查。
我的许多观点并没有将输入传递给一个特定的模型,所以我设置了视图模型类。我没有公开整个模型实例,而是将属性公开给允许/需要由视图设置的模型。
// 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;
}
}
此方法正确填充视图模型类,并且存储库可以正确填充记录。
虽然它并没有完全通过验证。我查看了发出的客户端代码,验证数组对于xval是空的。此外,服务器端检查IsValid始终为真。
我可以通过视图模型的属性拉数据注释拉这样的验证,或者我应该这样做另一种方式?
请在此标记回答,如果它回答了您的问题 – 2011-09-08 13:45:39