Próbuję uzyskać dyskretną walidację po stronie klienta działającą w module Orchard, ale mam problem.Orchard CMS DataAnnotations - Walidacja po stronie klienta
W tym przykładzie próbuję tylko wymusić RequiredAttribute na polu textbox, używając Html.TextBoxFor().
Wydaje mi się, że niestandardowego ModelValidatorProvider realizowanego przez Orchard (LocalizedModelValidatorProvider) zapobiega atrybuty wejście HTML5 przed renderowane, a konkretnie:
data-val
data-val-required
dla standardowych DataAnnotations RequiredAttribute. Atrybuty te są wymagane do działania przez jQuery.validate.unobtrusive.
LocalizedModelValidatorProvider mapuje RequiredAttribute na LocalizedRequiredAttribute, więc może to błąd (lub niezaimplementowana funkcja) w Orchard ViewEngine podczas renderowania danych wejściowych pola tekstowego dla właściwości modelu ozdobionej LocalizedRequiredAttribute?
Podejrzewam, że jakoś tak się nie dzieje:
tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(name, metadata));
(od System.Web.Mvc.Html.InputExtensions)
Jestem obecnie działa Sad 1.3.9.
Uwaga: hacky obejście jest usunąć rejestrację LocalizedModelValidatorProvider w module OrchardStarter i domyślne z powrotem do standardowego MVC 3 operatora, chociaż jestem chętni, by nie przeszkadzać źródło Orchard jeśli w ogóle możliwe (nie wspominając, że może potrzebować zlokalizowanych wiadomości w pewnym momencie) ...
Czy kiedykolwiek to rozwiązano. W tym celu uderzam w ten sam mur. – Mounhim
Nie przeze mnie - choć warto zauważyć, że było to w wersji 1.3.9, która ma prawie rok - mogło zostać naprawione w późniejszych wersjach. Opisane powyżej obejście było dla mnie w porządku, więc go nie realizowałem - prawdopodobnie powinienem zgłosić błąd ... –
Dlaczego nie spróbować formorm, ma wbudowaną funkcję generowania dynamicznych formularzy ma wbudowane strategie walidacji, które możesz definiować. https://gallery.orchardproject.net/List/Modules/Orchard.Module.oforms – bijayk