Už několikrát se mi stalo, že mi zničehonic přestala fungovat client side validace v C# webové aplikaci. Hrál jsem si s tím tak dlouho až jsem našel řešení.
v adresáři
[ROOT]\aspnet_client\system_web\1_1_4322\
je soubor:
WebUIValidation.js
a v něm je funkce
function ValidatorCommonOnSubmit() {
event.returnValue = !Page_BlockSubmit;
Page_BlockSubmit = false;
}
Mé řešení je sice o řádek delší, a definuje navíc jednu proměnnou, ale zato bez problémů funguje 🙂 takže tuto funkci přepište aby vypadala takto:
function ValidatorCommonOnSubmit() {
var retVal = !Page_BlockSubmit;
Page_BlockSubmit = false;
return retVal;
}
Update: Jak říká Altair, zkuste prvně v příkazovém řádku .NET spustit
aspnet_regiis -c
Třeba to tento problém vyřeší.
Michal Altair Valášek // Úno 28, 2005 at 11:51
Tento problém je způsobem SP1 pro .NET Framework. Jeho instalace změní .NET runtime, ale ne klientské skripty všude. Řešením je spustit na serveru
aspnet_regiis -c
. Ruční modifikaci standardních skriptů výrazně nedoporučuji.Rammi // Úno 28, 2005 at 12:04
to jsem samozřejmě zkoušel, problem ale je, že mi ale aspnet_regiis -c nefunguje 🙁
Můj účet ma administrátorská práva, ale i přesto dostanu hlášku:
Start copying the ASP.NET client side script files for this version (1.1.4322.0)
.
An error has occurred (0x80070005).
You must have administrative rights on this machine in order to run this tool.
A tak jsem to vyřešil touto cestou. Celý adresář ASP_CLIENT mám stejně pod source control. Nechci se dočkat nějakých překvapení při updatech a tak mám raději client side scripty uložené jako součást projektu.