Применение аннотаций данных к подчиненным свойствам модели представления в MVC?

Помещать простые аннотации данных в свойствах - это здорово,

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }

Но скажем, яу меня есть что-то вроде этого:

public class SuperPower
{
   public class Name { get; set; }
}

public class UnicornViewModel
{
   [Required]
   public string Name { get; set; }

   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }

Как применить атрибут Required к PrimarySuperPower.Name, оставив его необязательным для SecondarySuperPower.Name? Предпочтительно 1. что-то, что связано с проверкой на стороне клиента и 2. без какой-либо специальной обработки, такой как проверка значения PrimarySuperPower.Name в валидаторе Action / Custom и добавление ошибки ModelState, если она 'пусто Было бы здорово, если бы было что-то вроде:

   [Required(p => p.Name)]
   public SuperPower PrimarySuperPower { get; set; }

   public SuperPower SecondarySuperPower { get; set; }

Ответы на вопрос(4)

Ваш ответ на вопрос