Ho il seguente regex impostato come proprietà ValidationExpression
su un RegularExpressionValidator in un modulo Web. Quando inserisco un carattere non valido nel controllo convalidato, il validatore lo rileva e mostra un messaggio di errore.RegularExpressionValidator non rileva stringhe vuote
<appSettings>
<add key="categoryPattern" value="^[a-zA-Z0-9_+\-() ]{1,50}$" />
</appSettings>
mio validatore:
<asp:RegularExpressionValidator ValidationExpression="<%$ AppSettings:categoryPattern %>"
Il server della validazione lato:
Regex rex = new Regex(ConfigurationManager.AppSettings["categoryPattern"]);
if (!rex.Match(categoryName).Success)
{
throw new ArgumentException("CategoryName must match expression: " + rex);
Come si può vedere, esattamente lo stesso modello viene applicato lato client e lato server.
Tuttavia, quando si deseleziona il controllo convalidato e si invia una stringa vuota, il programma di convalida pensa che sia OK e viene visualizzato un errore dalla convalida del server. Qualcuno sa cosa c'è di sbagliato qui, ad eccezione del contratto rotto di RegularExpressionValidator?
Grazie a @Mehrdad, ho aggiunto un RequiredFieldValidator, ma la convalida del mio server non si trova sulla pagina, ma nella classe utilizzata dalla pagina e potenzialmente altro codice, quindi lo terremo. – ProfK
Prego. –