mvc validação do lado do cliente para propriedades aninhadas (coleção)

Estou usando o asp.net mvc 3 com validação discreta do jquery. Recentemente, mudei de DataAnnotations padrão para FluentValidation e funciona muito bem.

Meu principal motivo para escolher o FluentValidation foi a necessidade de validar propriedades aninhadas no meu viewmodel (mas descobri que existem outros motivos interessantes para usá-lo) que se parecem com isso (não se preocupe com acessadores, isso é pseudo):

class Vm {
  string Prop;
  string AnotherProp;
  IEnumerable<ElementsVm> Elements;
}

class ElementsVm {
  bool Required;
  string Id;
  string Title;
  string Value;
}

Usando o FluentValidation, faço um validador para Vm e ElementVm e meus testes de unidade são verdes, mostrando que a validação no servidor está funcionand

Client side, 'Prop' e 'AnotherProp' estão funcionando - minhas regras de validação também estão sendo executadas no lado do cliente conforme o esperado (como faria com o DataAnnontation), mas todos os meus elementos não estão obtendo nenhuma validação no lado do cliente - eu inspeciono o dom e pode ver todos os atributos data-val, data-required etc. estão ausente

Tentei abordagens diferentes para gerar o html em meus modos de exibição, mas o 'Prop' e 'AnotherProp' são gerados usando Html.TextBoxFor (m => m.Prop) enquanto meus elementos são gerados em parte - é aqui que os problemas começam. Se eu escolher Html.TextBoxFor (m => m.Value), todas as minhas caixas de texto de elemento terão o mesmo nome / ID, então também tentei usar Html.TextBox (Model.Id) para gerar um ID / nome exclusivo, mas ainda sem propriedades de validação. .

Existe uma maneira de fazer meu senario funcionar - não me importo de reescrevê-lo um pouco, mas eu realmente gostaria que o FluentValidation escrevesse meu html para mi

minha solução de fallback seria criar meus próprios auxiliares de Html para gerar o Html correto com atributos, mas acho que seria péssimo, já que eu teria que continuar atualizando esses auxiliares quando novos lançamentos / patches fossem feitos para FluentValidation, validação de jquery ou o link em mvc entre os dois.

questionAnswers(1)

yourAnswerToTheQuestion