Связыватель пользовательской модели - Как повторно проверить

Я использую ASP.NET MVC 2 и хочу выяснить, как повторно запустить проверку моей модели после того, как она была заполнена с помощью пользовательского binder.

Итак, я начну с пары связанных классов EF, Booking и Traveler (в каждом бронировании может быть один или несколько путешественников)

Вот класс друзей, который я использую, чтобы разместить проверку на Booking:

[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;            
    }
}

Я использую привязку пользовательской модели для заполнения бронирования и связанных с ним путешественников, за исключением того, что ModelState.IsValid, по-видимому, установлен еще до того, как у моего пользовательского связывателя модели появилась возможность добавить путешественников в объект бронирования, даже после выполнения Итак, ModelState ["Travelers"] по-прежнему содержит ошибку проверки, в которой говорится, что должен быть подключен хотя бы один путешественник.

Есть ли способ повторно запустить проверку после того, как привязка пользовательской модели сделала свое дело?

1
задан Kris van der Mast 21 September 2010 в 06:08
поделиться