No meu projeto MVC3, eu armazeno a previsão de pontuação para futebol / futebol / hóquei / ... jogo de esporte. Portanto, uma das propriedades da minha classe de previsão é assim:
[Range(0, 15, ErrorMessage = "Can only be between 0 .. 15")]
[StringLength(2, ErrorMessage = "Max 2 digits")]
[Remote("PredictionOK", "Predict", ErrorMessage = "Prediction can only be a number in range 0 .. 15")]
public int? HomeTeamPrediction { get; set; }
Agora, também preciso alterar a mensagem de erro para um tipo de dado, int
no meu caso. Existe algum padrão usado - "O campo HomeTeamPrediction deve ser um número.". Precisa encontrar uma maneira de alterar essa mensagem de erro. Esta mensagem de validação também parece ter previsão para validação remota um.
Tentei o [DataType]
atributo, mas não parece um número simples na system.componentmodel.dataannotations.datatype
enumeração.
fonte
Experimente uma destas expressões regulares:
espero que ajude: D
fonte
int.MaxValue
cobre apenas até2.147.483.647
Use regex na anotação de dados
fonte
[0-9]+
?fonte
Experimente este atributo:
E também você deve registrar o atributo no plugin validador:
fonte
quase uma década se passou, mas o problema ainda é válido com o Asp.Net Core 2.2 também.
Eu consegui adicionar
data-val-number
ao campo de entrada a localização de uso na mensagem:fonte
ASP.NET Core 3.1
Esta é a minha implementação do recurso, ele funciona no lado do servidor, bem como com a validação jquery discreta com uma mensagem de erro personalizada, como qualquer outro atributo:
O atributo:
Lógica do lado do cliente:
E finalmente o uso:
fonte