Um validador do ASP.NET MVC para garantir que pelo menos uma caixa de seleção esteja marcada

Eu tenho um projeto ASP.NET MVC 2 no qual criei um objeto de transferência de dados para receber dados de um formulário de página da web. O formulário possui dois grupos de caixas de seleção. Quero validar o objeto para garantir que pelo menos uma das caixas de seleção em cada grupo esteja marcada.

Estou fazendo a validação no lado do servidor para que um usuário não consiga invadir nenhuma validação no lado do cliente. (Adicionarei a validação do lado do cliente com o jQuery mais tarde; isso é fácil.)

Meu entendimento é que preciso criar meu próprio ValidationAttribute personalizado para minha classe de objeto de transferência de dados, mas não entendo como criar e usar um que possa aceitar uma lista arbitrária de propriedades da caixa de seleção para garantir que pelo menos um deles seja verdadeiro. Acho que vou ter que chamar os atributos assim:

[AtLeastOneCheckbox("set1check1", "set1check2", "set1check3",
    ErrorMessage = "You must check at least one checkbox in set 1.")]
[AtLeastOneCheckbox("set2check1", "set2check2", "set2check3", "set2check4", "set2check5",
    ErrorMessage = "You must check at least one checkbox in set 2.")]
public class MyFormDTO
{
    ...
}

Como seria a implementação do AtLeastOneCheckboxAttribute?

Ou existe uma maneira diferente de eu fazer esse tipo de validação?

questionAnswers(2)

yourAnswerToTheQuestion