W moim projekcie MVC3 przechowuję prognozy wyników dla piłki nożnej / piłki nożnej / hokeja / ... gry sportowej. Więc jedna z właściwości mojej klasy predykcji wygląda następująco:
[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; }
Teraz potrzebuję również zmienić komunikat o błędzie dla typu danych, int
w moim przypadku. Jest używany domyślny - „Pole HomeTeamPrediction musi być liczbą.”. Musisz znaleźć sposób, jak zmienić ten komunikat o błędzie. Ten komunikat walidacji wydaje się również uwzględniać prognozę dotyczącą walidacji zdalnej.
Próbowałem [DataType]
atrybutu, ale nie wydaje się to być zwykłą liczbą w system.componentmodel.dataannotations.datatype
wyliczeniu.
źródło
Wypróbuj jedno z tych wyrażeń regularnych:
mam nadzieję, że to pomoże: D
źródło
int.MaxValue
obejmuje tylko do2.147.483.647
Użyj wyrażenia regularnego w adnotacji danych
źródło
[0-9]+
?źródło
Wypróbuj ten atrybut:
Musisz także zarejestrować atrybut we wtyczce walidatora:
źródło
minęło prawie dziesięć lat, ale problem nadal dotyczy Asp.Net Core 2.2.
Udało mi się to dodając
data-val-number
do pola wejściowego lokalizację użycia na komunikacie:źródło
ASP.NET Core 3.1
To jest moja implementacja tej funkcji, działa po stronie serwera, a także z dyskretną walidacją jquery z niestandardowym komunikatem o błędzie, tak jak każdy inny atrybut:
Atrybut:
Logika po stronie klienta:
I wreszcie użycie:
źródło