Пожалуйста, спросите, не можете ли вы понять, что я прошу.asp.net MVC DataAnnotations
Я создал обычай ValidateAttribute
для моего ViewModel
я создал его для свойств Validate, которые зависят от другого свойства ViewModel
если (пользователь проверил «01» или «09» от QrupList) Тогда
- название компании требуется
- имя, фамилия и LastName не нужны
еще
- Название компании не требуется
- Имя, фамилия и LastName необходимы
меня ViewModel, как показано ниже
[ValidateForGroupAttribute("Group", "CompanyName")]
public partial class AbonentViewModel
{
[DisplayName("Şirkət")]
public string CompanyName { get; set; }
[DisplayName("Soyadı")]
[Required(ErrorMessage = "Soyadı vacibdir")]
public string Surname { get; set; }
[DisplayName("Qrup")]
[Required(ErrorMessage = "Qrup vacibdir")]
public string Group{ get; set; }
public SelectList GroupList { get; set; }
}
Мои пользовательские ValidationAttribute
классов:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class ValidateForGroupAttribute : ValidationAttribute
{
private const string _defaultErrorMessage = "'{0}' a müvafiq '{1}' daxil din";
public ValidateForGroupAttribute(string originalProperty, string confirmPropertyCompany)
: base(_defaultErrorMessage)
{
OriginalProperty = originalProperty;
ConfirmPropertyCompany = confirmPropertyCompany;
}
public string OriginalProperty { get; private set; }
public override string FormatErrorMessage(string name)
{
return String.Format(CultureInfo.CurrentUICulture, ErrorMessageString,
OriginalProperty, ConfirmPropertyCompany);
}
public override bool IsValid(object value)
{
PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
object originalValue = properties.Find(OriginalProperty, true).GetValue(value);
object confirmValueCompany = properties.Find(ConfirmPropertyCompany, true).GetValue(value);
if ((string)originalValue == "01" || (string)originalValue == "09")
return false;
else
return true;
}
}
Как мне это сделать? Что не так в моих ValidationAttribute
?
спасибо jgauffin. У меня проблема с английским – AEMLoviji 2010-12-02 07:49:32