У меня есть классы моделей в Linq-to-Sql с частичными классами, отмеченными атрибутами аннотации данных и ссылкой на xVal.
Когда я связываю представление напрямую с моделью, все прекрасно работает, и JS, генерируемый xVal, и двойная проверка на стороне сервера.
Многие из моих представлений не принимают входных данных для одной конкретной модели, поэтому я настраиваю классы моделей представлений. Вместо того, чтобы выставлять весь экземпляр модели, я выставляю в модель свойства, которые я разрешаю / должен устанавливать в представлении.
// 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 всегда выполняется.
Могу ли я получить аннотации данных, используя свойства модели представления для проверки, подобной этой, или я должен делать это по-другому?