Vì vậy, tiêu đề nên nói cho chính nó.
Để tạo các thành phần có thể sử dụng lại trong ASP.NET MVC, chúng tôi có 3 tùy chọn (có thể là các tùy chọn khác mà tôi chưa đề cập):
Tầm nhìn hạn chế:
@Html.Partial(Model.Foo, "SomePartial")
Mẫu biên tập tùy chỉnh:
@Html.EditorFor(model => model.Foo)
Mẫu hiển thị tùy chỉnh:
@Html.DisplayFor(model => model.Foo)
Về mặt Chế độ xem / HTML thực tế, cả ba triển khai đều giống nhau:
@model WebApplications.Models.FooObject
<!-- Bunch of HTML -->
Vì vậy, câu hỏi của tôi là - khi nào / làm thế nào để bạn quyết định sử dụng một trong ba?
Điều tôi thực sự đang tìm kiếm là một danh sách các câu hỏi để tự hỏi mình trước khi tạo một câu hỏi, trong đó câu trả lời có thể được sử dụng để quyết định sử dụng mẫu nào.
Đây là 2 điều tôi thấy tốt hơn với EditorFor / DisplayFor:
Chúng tôn trọng hệ thống phân cấp mô hình khi kết xuất trình trợ giúp HTML (ví dụ: nếu bạn có đối tượng "Bar" trên mô hình "Foo" của mình, các phần tử HTML cho "Bar" sẽ được hiển thị bằng "Foo.Bar.EuityName", trong khi một phần sẽ có " Tên phần tử ").
Mạnh mẽ hơn, ví dụ nếu bạn có một
List<T>
thứ gì đó trong ViewModel, bạn có thể sử dụng@Html.DisplayFor(model => model.CollectionOfFoo)
và MVC đủ thông minh để xem đó là một bộ sưu tập và hiển thị màn hình duy nhất cho mỗi mục (trái ngược với Partial, yêu cầu rõ ràng cho vòng).
Tôi cũng đã nghe DisplayFor biểu hiện một mẫu "chỉ đọc", nhưng tôi không hiểu điều đó - tôi không thể ném một biểu mẫu lên đó chứ?
Ai đó có thể cho tôi biết một số lý do khác? Có một danh sách / bài viết ở đâu đó so sánh ba?