2015-04-24 8 views
8

Non desidero visualizzare ValidationSummary nel caso in cui mostri solo errori di campo già visualizzati. Tuttavia ho bisogno ValidationSummary quando si verifica errore di validazione lato server personalizzato come:Come non visualizzare ASP MVC ValidationSummary nel caso in cui gli errori siano già visualizzati campo per campo?

if (!UserManager.IsEmailConfirmed(user.Id)) 
{ 
    AuthenticationManager.SignOut(); 
    ModelState.AddModelError("", "You need to confirm your email."); 
    return View(model); 
} 

enter image description here

enter image description here

+1

'@ Html.ValidationSummary (true)' –

+0

@Stephen Ho inizialmente pensato che questo avrebbe avuto risposta prima. Non ho trovato un dupe però. Ne conosci qualcuno? – CodeCaster

+0

@CodeCaster Penso di aver già risposto ad una domanda quasi identica - non riesco ancora a trovarla –

risposta

10

Usa @Html.ValidationSummary(excludePropertyErrors: true).

Questo sovraccarico, quando excludePropertyErrors è true, nasconde errori di proprietà come "Il campo di posta elettronica non è un indirizzo di posta elettronica valido." e "Il campo Password è obbligatorio." dal riepilogo di convalida. Vedi anche @Html.ValidationSummary(true) - What's the true do?.

E non rilevare se si stampano quelle però @Html.ValidationMessageFor(), quindi se si dimentica una di queste, è possibile ottenere in mancanza di invio di moduli che non vi dico il motivo per cui non riescono.

Per aggiungere manualmente errori di convalida non Property, chiamare ModelState.AddModelError("", "Custom error") (notare la stringa vuota) come spiegato in Add error message to @Html.ValidationSummary e ASP.NET MVC Html.ValidationSummary(true) does not display model errors.

0

come @CodeCaster dicono semplice add

@ Html.ValidationSummary (vero).

Se il parametro bool è impostato su true, vengono visualizzati solo gli errori a livello di modello. Se il parametro è falso, vengono visualizzati tutti gli errori. reference

Problemi correlati