Я использую Asp.net MVC 3, сталкиваюсь с проблемой проверки с аннотациями данных, как показано ниже
Мы сохранили модель в отдельном проекте библиотеки, иерархия классов модели теперь выглядит как
public class EditAlternateMailingAddressModel : BaseModel
{
public UserAddressDetails AlternateAddressDetails { get; set; }
public List<UsState> StateList { get; set; }
}
userAddressDetails определяется как показано ниже
public partial class UserAddressDetails
{
public string DeliveryLine { get; set; }
public string Zip { get; set; }
public bool IsDefaultMailingAddress { get; set; }
}
логика проверки определена в отдельном классе, как показано ниже
[MetadataType(typeof(UserAddressDetailsMetaData))]
public partial class UserAddressDetails
{
private class UserAddressDetailsMetaData
{
[Required(ErrorMessage = "Please enter address.")]
public string DeliveryLine { get; set; }
[Required(ErrorMessage = "Please enter city.")]
public string City { get; set; }
public bool IsDefaultMailingAddress { get; set;
}
в режиме редактирования, DeliveryLine, Zip зависят от IsDefaultMailingAddress, так как эти поля должныбудет предоставлено, если IsDefaultMailingAddress имеет значение true, в противном случае разрешите отправку формы.
для открытия и частичной отправки форм, которые мы используем jQuery.
Мы уже пробовали ниже http://andrewtwest.com/2011/01/10/conditional-validation-with-data-annotations-in-asp-net-mvc/ http://blogs.msdn.com/b/simonince/archive/2010/06/04/conditional-validation-in-mvc.aspx
но эти проверки выполняются на стороне сервера, мы должны заставить его работать на стороне клиента.