WebForms UnobtrusiveValidationMode wymaga ScriptResourceMapping dla jquery
W mojej aplikacji webowej pojawia się następujący błąd:
WebForms UnobtrusiveValidationMode wymaga skryptu dla 'jquery'. Proszę dodać Skryptresourcemapping o nazwie jquery (rozróżnia wielkość liter).
Opis: Wystąpił nieobsługiwany wyjątek podczas wykonywania bieżące żądanie internetowe. Proszę przejrzeć ślad stosu, aby uzyskać więcej informacji informacje o błędzie i miejscu jego powstania w kodzie.
Szczegóły Wyjątku: System.InvalidOperationException: WebForms UnobtrusiveValidationMode wymaga scriptresourcemapping dla 'jquery'. Proszę dodać Skryptresourcemapping o nazwie jquery (rozróżnia wielkość liter).
Jak mogę to rozwiązać?
7 answers
Od. NET 4.5 walidatory używają atrybutów danych i ograniczonego Javascript do walidacji, więc. NET oczekuje, że dodasz odniesienie do skryptu jQuery.
Istnieją dwa możliwe sposoby rozwiązania błędu:
Wyłącz UnobtrusiveValidationMode
:
Dodaj to do web.config:
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>
Będzie działać tak, jak w poprzednich wersjach. NET i po prostu doda niezbędny Javascript do strony, aby walidatory działały, zamiast szukać kodu w jQuery plik. W rzeczywistości jest to powszechne rozwiązanie.
Innym rozwiązaniem jest zarejestrowanie skryptu:
In Global.asax Application_Start
Dodaj mapowanie do ścieżki pliku jQuery:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
ScriptManager.ScriptResourceMapping.AddDefinition("jquery",
new ScriptResourceDefinition
{
Path = "~/scripts/jquery-1.7.2.min.js",
DebugPath = "~/scripts/jquery-1.7.2.js",
CdnPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js",
CdnDebugPath = "http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.js"
});
}
Niektóre szczegóły z MSDN:
ValidationSettings: UnobtrusiveValidationMode określa sposób ASP.NET globalnie pozwala wbudowanym kontrolkom walidatora używać dyskretnie JavaScript dla logiki walidacji po stronie klienta.
Jeśli wartość klucza jest ustawiona na " None "[default], ASP.NET zastosowanie użyje zachowania pre - 4.5 (JavaScript inline in the pages) dla logika walidacji po stronie klienta.
Jeśli wartość klucza jest ustawiona na "WebForms", ASP.NET używa atrybutów danych HTML5 i późnego kodu JavaScript z dodanego odwołania do skryptu dla logiki walidacji po stronie klienta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-20 09:12:55
Aby rozwiązać ten problem na określonej stronie, należy ustawić pewne ustawienia walidacji podczas ładowania strony. Wpisz poniżej kod w metodzie Page_Load()
:
protected void Page_Load(object sender, EventArgs e)
{
ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
Jego praca dla mnie w. NET 4.5
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-05 11:41:06
Myślę, że jest to najlepsze rozwiązanie dla tego typu błędów. Więc proszę dodać poniżej. Działa również mój kod, gdy używam MSVS 2015.
<configuration>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-01 09:29:25
Jaqen H ' Ghar jest na miejscu. Trzecim sposobem jest:
- przejdź do Zarządzaj pakietami NuGet
- Zainstaluj Microsoft.jQuery.Dyskretny.Walidacja
- Open Global.asax.plik cs i dodaj ten kod wewnątrz metody Application_Start
Kod uruchamiany podczas uruchamiania aplikacji:
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", new ScriptResourceDefinition {
Path = "~/Scripts/jquery.validate.unobtrusive.min.js",
DebugPath = "~/Scripts/jquery.validate.unobtrusive.min.js"
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-05 21:19:34
Kliknij prawym przyciskiem myszy na swojej stronie przejdź do property pages i zaznacz oba pola wyboru pod Accessibility validation Kliknij ok. Uruchom stronę.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-02 05:05:42
Wyjątek wskazuje na problem z dyskretnym trybem walidacji JavaScript. Ten problem nie jest specyficzny dla Sitefinity i występuje w każdym standardzie ASP.NET aplikacje, gdy projekt ma na celu. NET 4.5 framework i pre-4.5 Walidacja nie jest włączona w Internecie.plik konfiguracyjny.
Otwórz sieć.plik konfiguracyjny i upewnij się, że w ustawieniach aplikacji znajduje się ValidationSettings:UnobtrusiveValidationMode:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-10-09 08:00:16
W związku z zaakceptowaną odpowiedzią napotkałem problemy z kodem w innym miejscu na mojej stronie wymagającym jQuery wraz z wtyczką Migrate .
Gdy wymagane mapowanie jest dodawane do globalnego.asax, podczas ładowania strony wymagającej dyskretnej walidacji(na przykład strony z kontrolką ASP ChangePassword), zmapowany zasób skryptów koliduje z już załadowanymi skryptami jQuery i migrate.
Dodanie wtyczki migrate jako drugiego mapowania rozwiązuje problem:
// required for UnobtrusiveValidationMode introduced since ASP.NET 4.5
var jQueryScriptDefinition = new ScriptResourceDefinition
{
Path = "~/Plugins/Common/jquery-3.3.1.min.js", DebugPath = "~/Plugins/Common/jquery-3.3.1.js", LoadSuccessExpression = "typeof(window.jQuery) !== 'undefined'"
};
var jQueryMigrateScriptDefinition = new ScriptResourceDefinition
{
Path = "~/Plugins/Common/jquery-migrate-3.0.1.min.js", DebugPath = "~/Plugins/Common/jquery-migrate-3.0.1.js", LoadSuccessExpression = "typeof(window.jQuery) !== 'undefined'"
};
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", jQueryScriptDefinition);
ScriptManager.ScriptResourceMapping.AddDefinition("jquery", jQueryMigrateScriptDefinition);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-12-01 13:48:08