我在Linq-to-Sql中有一些模型类,其中部分类使用数据注释属性标记,并引用xVal。
当我将视图直接绑定到模型时,所有内容都很好,xVal生成的JS和服务器端双重检查都能正常工作。
我的许多视图不会接收单个特定模型的输入,因此我正在设置视图模型类。我将模型实例暴露的部分属性公开,以便视图可以设置/需要设置这些属性。
这种方法可以正确填充视图模型类,存储库也可以正确填充记录。但是,它完全没有通过验证。我查看了客户端代码的生成,发现xval的验证数组为空。此外,IsValid的服务器端检查始终为true。
我能否让数据注释像这样拉取视图模型的属性进行验证,还是应该用另一种方式来实现?
当我将视图直接绑定到模型时,所有内容都很好,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的服务器端检查始终为true。
我能否让数据注释像这样拉取视图模型的属性进行验证,还是应该用另一种方式来实现?