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ší.


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.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.