Ho una forma che contiene 3 sezioni distinte che sembra qualcosa di simile:sintesi di convalida per un sottoinsieme di campi
<form action="/Submit/" method="POST">
<h2>
Your Info:
</h2>
<ul>
<li>
<label>
First Name:
@Html.TextBoxFor(m => m.FirstName)
</label>
</li>
<li>
<label>
Last Name:
@Html.TextBoxFor(m => m.LastName)
</label>
</li>
</ul>
<h2>
Membership:
</h2>
<ul>
<li>
<label>@Html.RadioButtonFor(m => m.MembershipLength_Months, 3) 3 Months</label>
</li>
<li>
<label>@Html.RadioButtonFor(m => m.MembershipLength_Months, 12) 12 Months</label>
</li>
</ul>
<h2>
Billing Info:
</h2>
@Html.EditorFor(m=> m.PaymentInfo)
<input type="submit" value="Submit" />
</form>
Quello che mi piacerebbe fare è di avere un riepilogo per sezione. So che potrei fare qualcosa di simile sotto ogni H2:
@if (ViewData.ModelState.Keys.Contains("FirstName") || ViewData.ModelState.Keys.Contains("LastName"))
{
<div>
summary text
@Html.ValidationMessageFor(m => m.FirstName)
@Html.ValidationMessageFor(m => m.LastName)
</div>
}
Ma sembra che ci dovrebbe essere una soluzione più pulita. Google mi ha completamente fallito e non sono stato in grado di trovare un helper personalizzato o un'estensione di riepilogo di convalida che accetta una raccolta per rappresentare le proprietà da riepilogare.
Ciascuna sezione contiene un buon numero di campi in modo che il confronto ModelState.Keys diventi piuttosto brutto abbastanza rapidamente. C'è un modo pulito per farlo?
Questo è praticamente esattamente quello che stavo cercando. Grazie. –