Per impostazione predefinita Html.ValidationSummary() produce HTML come questo:Circondati da un ValidationSummary con una scatola tramite CSS
<span class="validation-summary-errors">There were some errors...</span>
<ul class="validation-summary-errors">
<li>First Name too long</li>
<li>Invalid Email Address</li>
</ul>
vorrei selezionare l'intero sommario di convalida e aggiungere un riquadro attorno ad esso tramite CSS, così mi sono l'aggiunta di una classe CSS come questo:
.validation-summary-errors{
background-color:#D9FFB2;
border: 1px solid #5CBA30;
color:#000000;
margin-top:15px;
margin-bottom:15px;
}
Ora il problema è che questo attira scatole separate attorno al messaggio di riepilogo di convalida e di ogni messaggio di errore. Certamente non quello che avevo in mente.
posso aggiungere un div intorno al riassunto in questo modo, ma questo si tradurrà in una scatola rossa vuota se non ci sono errori di convalida, quindi questo non è il modo:
<div class="my-validation-summary">
<h2>
<%=Model.Message%>
</h2>
<%= Html.ValidationSummary("There were some errors...")%>
</div>
mi viene in mente diversi modi per risolvere questo:
- Aggiungi una delimitazione div condizionalmente con tag server-side
- Aggiungi una delimitazione div tramite jQuery
- scrivere il mio HtmlHelper involucro ° alle stampe un ValidationSummary CSS-friendly
Tuttavia, tutto questo sembra abbastanza imbarazzante per la risoluzione di un compito così semplice. Ci deve essere un modo migliore per farlo. Forse un altro modo di scrivere la classe CSS in modo da non ottenere una casella vuota quando non c'è un riepilogo di convalida?
Edit: Giusto per chiarire, sto chiamando l'helper HTML come questo:
<%=Html.ValidationSummary("There were some errors...") %>
Edit 2: Lo scopo di questa domanda è stato quello di vedere se ho trascurato qualcosa di morto-facile e ovvio. Sembra che non l'abbia fatto, quindi aggiungerò semplicemente la mia funzione HtmlHelper che si adatta alle mie esigenze. Sto votando per chiudere la mia domanda.
Hai personalizzato il controllo di riepilogo della convalida? Non esegue il rendering allo stesso modo per impostazione predefinita come è stato pubblicato. – RSolberg
No, sto solo usando il metodo ValidationSummary di overload (vedi prima modifica sopra) - Adrian Grigore 13 secondi fa –
Mi piace come è disponibile la sorgente MVC: aprila e scrivi la tua. buona fortuna –