Jak zmienić walidację wiadomości `` data-val-number '' w MVC podczas jej generowania przez pomocnika @Html
Załóżmy, że ten model:
Public Class Detail
...
<DisplayName("Custom DisplayName")>
<Required(ErrorMessage:="Custom ErrorMessage")>
Public Property PercentChange As Integer
...
end class
i widok z okna:
@Html.TextBoxFor(Function(m) m.PercentChange)
ten html będzie kontynuowany:
<input data-val="true"
data-val-number="The field 'Custom DisplayName' must be a number."
data-val-required="Custom ErrorMessage"
id="PercentChange"
name="PercentChange" type="text" value="0"/>
Chcę dostosować komunikat o błędzie
data-val-number, który, jak zakładam, został wygenerowany, ponieważ
PercentChangeto
Integer. Szukałem takiego atrybutu, aby go zmienić,
rangelub coś powiązanego nie działa.
Wiem, że istnieje szansa na edycję samego dyskretnego pliku js lub nadpisanie go po stronie klienta. Chcę zmodyfikować komunikat o błędzie
data-val-numbertak samo, jak inne komunikaty po stronie serwera.
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
13 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Numer danych atrybut niezależnie podczas renderowania pola. To przedefiniuje domyślną wiadomość. Działa przynajmniej z MVC 4.
@ Html.EditorFor (model = & > model.MyNumberField, new {data_val_number = "wpisz liczbę całkowitą, koleś!"})
Pamiętaj, że musisz użyć podkreślenia w nazwie atrybutu do golenia, aby zaakceptować atrybut.
Anonimowy użytkownik
Potwierdzenie od:
Dodaj następujący kod wewnątrz w Global.asax :
Kliknij prawym przyciskiem myszy projekt ASP.NET MVC w vs. Wybierz add = & > Dodaj folder ASP.NET = & GT; App_globalresources .
Dodaj plik o nazwie do tego folderu.
Dodaj te zasoby łańcuchowe do pliku :
Zmień fieldmustbeneumeric więc jak chcesz ... :)
Jesteś skończony.
Sprawdź ten post, aby uzyskać więcej informacji:
Domyślnie lokalizację komunikatów o błędach w ASP.NET MVC i WebForms
http://weblogs.asp.net/imranba ... .aspx
Anonimowy użytkownik
Potwierdzenie od:
Możesz spojrzeć na następujące
post na blogu
http://jwwishart.blogspot.com/ ... .html
który opisuje możliwe rozwiązanie. Zasadniczo musisz zastąpić istniejące
ClientDataTypeModelValidatorProvider
http://msdn.microsoft.com/en-u ... .aspx
na użytkowniku.
Jeśli nie lubisz kodowania na stałe, musisz to zrobić, możesz również zastąpić tę wartość całkowitą w swoim modelu widoku ciągiem i mieć niestandardowy atrybut walidacji, który przeanalizuje i wyświetli niestandardowy komunikat o błędzie (który może być nawet zlokalizowany) ...
Anonimowy użytkownik
Potwierdzenie od:
Jest to trochę hacku, ale wydawało się, że zorientowanie złożoności innych rozwiązań przedstawionych przynajmniej w mojej szczególnej sytuacji.
Edytuj: Działał dobrze w MVC3, ale wydaje się, że mogą istnieć lepsze rozwiązania dla MVC4 +.
Anonimowy użytkownik
Potwierdzenie od:
Należy pamiętać, w jaki sposób otrzymuje się errormessage, określasz bieżącą kulturę, a zlokalizowana wiadomość jest usuwana z pliku zasobów walidacyjnej (pojawi się funkcje kultury) .resx. Jeśli tego nie potrzebujesz, po prostu zastąp go własną wiadomością.
Anonimowy użytkownik
Potwierdzenie od:
https://greenicicle.wordpress. ... cript
https://greenicicle.wordpress. ... ript/
/
Krótko mówiąc, po załadowaniu jQuery validation plus należy dołączyć następujący skrypt
odpowiedni plik lokalizacyjny
https://github.com/jzaefferer/ ... ation
.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Kluczem jest to, że sprawdzanie wiadomości są ustawiane przy użyciu Korzystając z atrybutu dla każdego elementu, więc wszystko, co musisz zrobić Wymienione przez te wiadomości przed ich użyciem biblioteki, jest trochę brudny, ale chciałem szybko wykonać pracę szybko, więc chodzi o sprawdzenie rodzaju numeru:
Dobrze jest, że nie wymaga kompilacji i możesz łatwo rozszerzyć go później, choć nie jest niezawodny, ale szybko.
Anonimowy użytkownik
Potwierdzenie od:
Kompletny przewodnik po walidacji w ASP.NET MVC 3 - część 2
http://www.devtrends.co.uk/blo ... art-2
Poniżej znajdują się główne części artykułu (kopiowane-wklejane).
Tworzenie w pełni funkcjonalnego walidatora pracującego zarówno na kliencie, jak i na serwerze składa się z czterech oddzielnych części. Najpierw jesteśmy i dodaj logikę skanowania serwera na stronie serwera. Następnie wdrażamy ICLientValidatable w naszym atrybucie, aby umożliwić atrybuty atrybutów HTML5 Client - * . Po trzecie, piszemy funkcję użytkownika JavaScript, który wykonuje skanowanie na kliencie. Wreszcie tworzymy adapter do konwersji atrybutów HTML5 do formatu, zrozumiałego przez naszą funkcję użytkownika. Chociaż brzmi to jak dużo pracy, gdy tylko zaczniesz, znajdziesz to stosunkowo proste.
Podklasy ValidationAttribute
W tym przykładzie napiszemy walidator NotEqualTo, który po prostu sprawdza, czy wartość jednej właściwości nie jest równa wartości innej.
Dodaj nowy atrybut do właściwości hasła RegisterModel i uruchom aplikację.
Wdrożenie ICLientValidatable.
ASP.NET MVC 2 miał mechanizm dodawania walidacji po stronie klienta, ale nie był ładny. Na szczęście w MVC 3 sytuacja się poprawiła i proces jest teraz dość trywialny i na szczęście
nie
obejmuje zmianę jak w poprzedniej wersji.
Pierwszym krokiem jest zaimplementowanie IClientValidatable przez niestandardowy atrybut walidacji. To jest prosty interfejs z jedną metodą:
Jeśli uruchomisz aplikację i zobaczysz źródło, zobaczysz, że wprowadzenie hasła HTML zawiera teraz nawigalto Atrybuty danych.
Tworzenie funkcji użytkownika jQuery Sprawdź poprawność
Cały ten kod jest najlepiej umieszczony w osobnym pliku JavaScript.
W zależności od wymagań dotyczących walidacji może się okazać, że biblioteka jquery.validate zawiera już kod wymagany do samej walidacji. W jquery.validate jest wiele walidatorów, które nie zostały zaimplementowane lub zmapowane do adnotacji danych, więc jeśli odpowiadają Twoim potrzebom, wszystko, co musisz napisać w javascript, to adapter lub nawet wywołanie adaptera wbudowanego, który może być po prostu w jednej linii. Zajrzyj do środka
jquery.validate.js
Aby dowiedzieć się, co tam jest.
Za pomocą istniejącego adaptera
jquery.validate.unobtrusive
Zadaniem adaptera jest odczytanie atrybutów HTML5 elementu formularza i przekonwertowanie tych danych do postaci zrozumiałej dla jquery.validate i niestandardowej funkcji walidacji. Jednak nie musisz wykonywać całej pracy samodzielnie, aw wielu przypadkach możesz wywołać adapter wbudowany. jquery.validate.unobtrusive deklaruje trzy wbudowane adaptery, których można używać w większości sytuacji. To:
Jeśli Twój walidator nie pasuje do żadnej z tych kategorii, musisz napisać własny adapter za pomocą Metoda. Nie jest tak trudny, jak się wydaje, i zobaczymy przykład później w tym artykule.
Używamy metody , przekazując nazwę adaptera i nazwę jedynej wartości, którą chcemy przekazać. Jeśli nazwa funkcji walidacji różni się od nazwy adaptera, możesz przekazać trzeci parametr ( ):
W tej chwili nasz zwyczaj został zakończony.
Aby uzyskać lepsze zrozumienie, zobacz
Sam artykuł
http://www.devtrends.co.uk/blo ... art-2
który zawiera bardziej szczegółowy opis i bardziej złożony przykład.
HTH.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Mam nadzieję że to pomoże.
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
I przynajmniej na końcu widoku umieściłem: