Asp.net MVC - Valide um modelo fora do controlador

Eu estou construindo um projeto ASP.NET MVC e indo para a seguinte arquitetura:

A Testemunho projeto que possui modelos, validação, dto, lógica, etc.A API ServiceStack projeto que atua como minha API RESTAWeb da ASP.NET MVC projeto que é a interface do usuário

Então, digamos que eu queira adicionar um usuário. Eu defino umNewUserInputModel noTestemunho projeto. Eu dou algumas anotações de dados como[Required]. Depois de fazer isso, oRede O projeto executará a validação do lado do cliente com base nessas anotações.

Minha pergunta é sobre a validação do lado do servidor. Eu quero validar oNewUserInputModel usando as mesmas regras que estão sendo usadas no lado do cliente, e eu quero executar essa validaçãoNewUserInputModel vem doAPI ou oRede projeto.

Eu percebo que eu poderia ligarModelState.IsValid de um controlador noRede projeto - mas eu quero chamar essa validação doTestemunho projeto de modo que toda a lógica de validação vive emTestemunho. Desta forma, não importa como este modelo chegue aoTestemunho lógica, eu sempre chamo a mesma validação. Eu não quero vazar umSystem.Web referência no meuTestemunho projeto.

Isso é um design razoável? Eu acho que é - mas se algo cheirar, eu ficaria feliz em ouvir isso.

Agradecemos antecipadamente por qualquer ajuda.

questionAnswers(4)

yourAnswerToTheQuestion