Como fornecer avisos durante a validação no asp.net MVC?

Às vezes, a entrada do usuário não é estritamente inválida, mas pode ser considerada problemática.

Por exemplo:

Um usuário insere uma sentença longa em uma única linhaName campo.Ele provavelmente deveria ter usado oDescription campo em vez.Um usuário entra em umName que é muito semelhante ao de uma entidade existente.Talvez ele esteja introduzindo a mesma entidade, mas não tenha percebido que ela já existe, ou algum usuário concorrente acabou de inseri-la.

Alguns deles podem ser facilmente verificados no lado do cliente, alguns exigem verificações no lado do servidor.

Qual é a melhor maneiratalvez algo parecido comDataAnnotations validação,fornecer avisos ao usuário em tais casos? A chave aqui é que o usuário tem que ser capaz de substituir o aviso e ainda enviar o formulário (ou re-enviar o formulário, dependendo da implementação).

A solução mais viável que vem à mente é criar algum atributo, semelhante a umCustomValidationAttribute, que pode fazer uma chamada AJAX e exibir algum texto de aviso, mas não afeta oModelState. O uso pretendido é este:

[WarningOnFieldLength(MaxLength = 150)]
[WarningOnPossibleDuplicate()]
public string Name { get; set; }

Na visão:

@Html.EditorFor(model => model.Name)
@Html.WarningMessageFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)

Então, alguma ideia?

questionAnswers(5)

yourAnswerToTheQuestion