Учитывая следующую модель просмотра:
public class SomeViewModel
{
public bool IsA { get; set; }
public bool IsB { get; set; }
public bool IsC { get; set; }
//... other properties
}
Я хочу создать пользовательский атрибут, который проверяет, по крайней мере, одно из доступных свойств: true. Я предполагаю, что могу прикрепить атрибут к свойству и назначить имя группы следующим образом:
public class SomeViewModel
{
[RequireAtLeastOneOfGroup("Group1")]
public bool IsA { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsB { get; set; }
[RequireAtLeastOneOfGroup("Group1")]
public bool IsC { get; set; }
//... other properties
[RequireAtLeastOneOfGroup("Group2")]
public bool IsY { get; set; }
[RequireAtLeastOneOfGroup("Group2")]
public bool IsZ { get; set; }
}
Я хотел бы проверить на стороне клиента до отправки формы как значения в изменении формы, поэтому я предпочитаю избегать атрибута уровня класса, если это возможно.
Это потребует проверки как на стороне сервера, так и на стороне клиента, чтобы найти все свойства, имеющие одинаковые значения имени группы, переданные как параметр для настраиваемого атрибута. Это возможно? Любые рекомендации очень ценятся.