Estoy tratando de configurar mi viewmodel para un formulario que recopilará información sobre las personas que se unen a un equipo. El formulario debe contener información inicial, luego una lista de 5 "Miembros del equipo" (cada uno con un nombre, correo electrónico y teléfono), de los cuales se necesitarán los dos primeros. Para mi la validación me gustaría que fuera de los campos individuales, así:Opcional [Obligatorio] en tipos complejos
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 parte pertinente de mi modelo de vista es actualmente:
[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; }
por lo que en mi opinión, que acaba de escribir:
@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)
el editor de plantillas se ve así:
@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>
Disculpa por incluir tanto en un hilo, pero ¿alguien tiene alguna sugerencia sobre cómo configurarlo? He pensado en heredar de RequiredAttribute y reemplazar [Required] en las propiedades de TeamMember, pero no estoy seguro de cómo configurar los mensajes de validación en los campos secundarios. En este momento, incluso si está vacío, pasa la verificación requerida, estoy asumiendo porque los objetos están vinculados (y por lo tanto no son nulos) aunque todas las propiedades estén en blanco.
Se agradece cualquier comentario.