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?