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