Mam formularz, w którym używam ckeditor. Ten formularz działał dobrze w Asp.Net 2.0 i 3.5, ale teraz nie działa w Asp.Net 4+. Mam dyrektywę ValidateRequest = "false". Jakieś sugestie?
asp.net
asp.net-4.0
validate-request
HasanG
źródło
źródło
Odpowiedzi:
Znaleziono rozwiązanie na stronie błędu. Wystarczy dodać requestValidationMode = "2.0"
Informacje MSDN: właściwość HttpRuntimeSection.RequestValidationMode
źródło
Istnieje sposób, aby przywrócić walidację z powrotem do wersji 2.0 dla jednej strony. Po prostu dodaj poniższy kod do swojego web.config:
źródło
Wiem, że to stare pytanie, ale jeśli napotkasz ten problem w MVC 3, możesz ozdobić
ActionMethod
go[ValidateInput(false)]
i po prostu wyłączyć weryfikację żądań dla pojedynczegoActionMethod
, co jest przydatne. Nie musisz też wprowadzać żadnych zmian wweb.config
pliku, więc nadal możesz korzystać z weryfikacji żądań .NET 4 wszędzie indziej.na przykład
źródło
Działa to bez zmiany trybu weryfikacji.
Musisz użyć
System.Web.Helpers.Validation.Unvalidated
pomocnika zSystem.Web.WebPages.dll
. To będzie powrót doUnvalidatedRequestValues
obiektu, który umożliwia dostęp do formularza i QueryString bez walidacji.Na przykład,
Działa dla mnie na MVC3 i .NET 4.
źródło
Zauważ, że innym podejściem jest zachowanie zachowania walidacji 4.0, ale zdefiniowanie własnej klasy, która pochodzi z
RequestValidator
i ustawia:(gdzie
YourNamespace.YourValidator
jest dobrze, powinieneś zgadywać ...)W ten sposób zachowujesz zalety zachowania 4.0 (w szczególności walidacja odbywa się na wcześniejszym etapie przetwarzania), a jednocześnie zezwalasz na przepuszczanie żądań.
źródło