Tôi đang cố gắng thiết lập mô hình chế độ xem của mình cho một biểu mẫu sẽ thu thập thông tin về những người tham gia một nhóm. Biểu mẫu phải chứa một số thông tin dẫn đầu, sau đó là danh sách 5 "Thành viên nhóm" (mỗi tên có chứa một tên, email và điện thoại), hai yêu cầu đầu tiên sẽ được yêu cầu. Đối với xác nhận của tôi, tôi muốn nó phải được trên các lĩnh vực cá nhân, như thế này:Tùy chọn [Bắt buộc] trên các loại phức tạp
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:
Phần liên quan của viewmodel của tôi hiện nay là:
[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; }
như vậy trong quan điểm của tôi, tôi chỉ cần viết:
@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)
mẫu biên tập viên trông như thế này:
@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>
Xin lỗi vì đã ném quá nhiều vào một chuỗi, nhưng có ai có đề xuất về cách tốt nhất để thiết lập điều này không? Tôi đã nghĩ về kế thừa từ RequiredAttribute và thay thế [Bắt buộc] trên các thuộc tính TeamMember, nhưng tôi không chắc chắn làm thế nào để thiết lập các thông báo xác nhận trên các trường con. Ngay bây giờ, ngay cả khi nó rỗng nó vượt qua kiểm tra yêu cầu, tôi giả định vì các đối tượng bị ràng buộc (và vì vậy không null) mặc dù tất cả các thuộc tính đều trống.
Mọi phản hồi đều được đánh giá cao.