Вы можете использовать реализовать IValidatableObject
(из System.ComponentModel.DataAnnotations
пространства имен) для проверки на стороне сервера на ваш взгляд Model:
public class AClass : IValidatableObject
{
public int Id { get; set; }
public string Name { get; set; }
public string SecondName { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if((!string.IsNullOrEmpty(Name) && string.IsNullOrEmpty(SecondName)) || (string.IsNullOrEmpty(Name) && !string.IsNullOrEmpty(SecondName)))
yield return new ValidationResult("Name and Second Name should be either filled, or null",new[] {"Name","SecondName"});
}
}
Теперь сделать конечно, если установлены оба параметра Name и SecondName, или null, то модель действительна, иначе это не так.
FYI, я рекомендую не возвращать поля в результате проверки при использовании сводки валидации. Если вы вернете оба поля в результате проверки, резюме проверки будет содержать два сообщения вместо ожидаемого единственного сообщения. –
Можете ли вы включить некоторый код для того, как это можно было бы использовать для аннотирования свойств класса? – niico