Я использую ASP.NET MVC 2 и хочу выяснить, как повторно запустить проверку моей модели после того, как она была заполнена с помощью пользовательского связывателя.
Итак, я начну с парыклассов EF, связанных с бронированием и путешественником (в каждом бронировании может быть один или несколько путешественников)
Вот класс приятеля, которого я использую для проверки в бронировании:
[MetadataType(typeof(Booking_Validation))]
public partial class Booking {
// partial class compiled with code produced by VS designer
}
[Bind(Include="Name")]
public class Booking_Validation {
[Required(ErrorMessage="Booking name required")]
public string Name { get; set; }
[AtLeastOneTraveller(ErrorMessage="Please enter at least one traveller")]
public EntityCollection<Traveller> Travellers;
}
public class AtLeastOneTraveller : ValidationAttribute {
public override bool IsValid(object value) {
if (value != null)
return ((EntityCollection<Traveller>)value).Count > 0;
return true;
}
}
Iиспользуйте привязку пользовательской модели для заполнения бронирования и связанных с ней путешественников, за исключением того, что ModelState.IsValid, похоже, задан еще до того, как моя привязка пользовательской модели смогла добавить путешественников к объекту бронирования, даже после этого, ModelState [«Путешественники»] по-прежнему содержит ошибку проверки, в которой говорится, что должен быть подключен хотя бы один путешественник.
Есть ли способ повторно запустить проверку после того, как механизм связывания пользовательских моделей выполнил свою задачу?