Stosowanie adnotacji danych do podrzędnych właściwości modelu widoku w MVC?
Umieszczanie prostych adnotacji danych na właściwościach jest świetne,
public class UnicornViewModel
{
[Required]
public string Name { get; set; }
Ale powiedzmy, że mam coś takiego:
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; }
Jak zastosować atrybut Required w PrimarySuperPower.Name, pozostawiając go opcjonalnym dla SecondarySuperPower.Name? Najlepiej 1. coś, co wiąże się z walidacją po stronie klienta i 2. bez żadnej specjalnej obsługi, takiej jak sprawdzanie wartości PrimarySuperPower.Name w walidatorze Action / Custom i dodanie błędu ModelState, jeśli jest pusty. Byłoby wspaniale, gdyby było coś takiego:
[Required(p => p.Name)]
public SuperPower PrimarySuperPower { get; set; }
public SuperPower SecondarySuperPower { get; set; }