Próbuję ustawić mój wizualizer w formularzu, który będzie zbierał informacje o osobach dołączających do zespołu. Formularz musi zawierać niektóre informacje o przedłożeniu, a następnie listę 5 "członków zespołu" (każdy zawierający nazwisko, adres e-mail i telefon), z których pierwsze dwa będą wymagane. Dla mojego walidacji Chciałbym go być na poszczególnych dziedzin, takich jak to:Opcjonalne [Wymagane] w przypadku typów złożonych
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:
Odpowiednia część mojego viewmodel jest obecnie:
[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; }
więc moim zdaniem, po prostu napisać:
@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)
szablon edytor wygląda tak:
@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>
Przepraszamy za rzucanie tak wiele w jedną nitkę, ale czy ktoś ma sugestię, jak najlepiej to ustawić? Zastanawiam się nad dziedziczeniem z RequiredAttribute i zamianą [Required] na właściwości TeamMember, ale nie jestem pewien, jak ustawić komunikaty sprawdzania poprawności w polach potomnych. W tej chwili, nawet jeśli jest pusty, przechodzi wymaganą kontrolę, zakładam, że obiekty są powiązane (i nie są puste), mimo że wszystkie właściwości są puste.
Wszelkie uwagi są mile widziane.