Sto cercando di ottenere il mio viewmodel impostato per un modulo che raccoglierà informazioni sulle persone che si uniscono a un team. Il modulo deve contenere alcune informazioni di leadup, quindi un elenco di 5 "membri del team" (ognuno contenente un nome, e-mail e telefono), i primi due dei quali saranno richiesti. Per il mio convalida vorrei che fosse sui singoli campi, come questo:Facoltativo [Richiesto] per tipi complessi
Person 1:
Name: (validation messaage)
Email: (validation message)
Phone: (validation message)
Person 2:
Name: (validation messaage)
Email: (validation message)
Phone: (validation message)
Person 3:
Name:
Email:
Phone:
Person 4:
Name:
Email:
Phone:
Person 5:
Name:
Email:
Phone:
La quota di competenza del mio ViewModel è attualmente:
[Required]
public TeamMember TeamMember1 { get; set; }
[Required]
public TeamMember TeamMember2 { get; set; }
public TeamMember TeamMember3 { get; set; }
public TeamMember TeamMember4 { get; set; }
public TeamMember TeamMember5 { get; set; }
in modo a mio avviso, ho solo scrivere:
@Html.EditorFor(model=>model.TeamMember1)
@Html.EditorFor(model=>model.TeamMember2)
@Html.EditorFor(model=>model.TeamMember3)
@Html.EditorFor(model=>model.TeamMember4)
@Html.EditorFor(model=>model.TeamMember5)
Editor modello si presenta così:
@model MyProject.Models.TeamMember
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Email)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Phone)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Phone)
@Html.ValidationMessageFor(model => model.Phone)
</div>
Ci scusiamo per aver buttato così tanto in una discussione, ma qualcuno ha un suggerimento su come impostare al meglio questo? Ho pensato di ereditare da RequiredAttribute e di sostituire [Required] nelle proprietà TeamMember, ma non sono sicuro di come impostare i messaggi di convalida sui campi secondari. Al momento, anche se è vuoto, passa il controllo richiesto, sto assumendo perché gli oggetti sono vincolati (e quindi non null) anche se tutte le proprietà sono vuote.
Qualsiasi feedback è apprezzato.