Thông thường, thực tiễn tốt là có cả mô hình xem và chỉnh sửa cho ứng dụng MVC? Có nghĩa là, tôi sẽ không muốn các thuộc tính xác nhận trên một mô hình khung nhìn vì nó về cơ bản chỉ đọc.ASP.NET MVC - ViewModels Chỉnh sửa
Trả lời
Bạn có thể có thuộc tính được gọi là ReadOnly (boolean) trong ViewModel của mình. Dựa trên thuộc tính đó, chế độ xem thích hợp có thể được hiển thị.
Bạn có thể sử dụng mô hình của mình cho mục đích chỉnh sửa. Bạn ràng buộc thuộc tính có thể chỉnh sửa đối với Chế độ xem và các thuộc tính khác vẫn giữ nguyên ngay cả khi ai đó đã nhập vào các đầu vào giả.
public ActionResult Update([Bind(Include=”First, Last”)]User user)
Điều này đảm bảo bạn chỉ nhận được trường Đầu tiên và Cuối cùng.
Có thể bạn đã bỏ qua nhưng không hiển thị các mục nhập có thể chỉnh sửa cho thuộc tính mô hình không thể chỉnh sửa.
Nếu chế độ xem của bạn là chế độ xem CRUD, việc sử dụng cùng một kiểu xem có ý nghĩa. Trên chế độ xem chỉ đọc, các thuộc tính xác thực sẽ bị bỏ qua vì bạn không nhập biểu mẫu. Khi bạn thoát khỏi CRUD, bạn có nhiều biến thể hơn về cách cấu trúc các máy ảo của mình. Tôi có một số tình huống mà một trường chỉ có thể được đặt trong khi chèn. Trong trường hợp này, tôi sử dụng cùng một máy ảo để hiển thị màn hình bổ sung, chỉ đọc và cập nhật (với DisplayFor vs InputFor trong chính chế độ xem html), nhưng tôi có các kiểu nhập khác nhau trên các phương thức Chèn và Cập nhật.
Tôi thường tạo mô hình chế độ xem mới cho mỗi chế độ xem. Tôi thấy rằng việc sử dụng lại trong thực tế của ViewModels chỉ là rất thấp và cố gắng để làm cho họ siêu chung không làm việc tuyệt vời và dẫn đến một số trường hợp lạ.
Khi lần đầu tiên tôi bắt đầu tạo ViewModels, tôi sẽ tạo ra các ViewModels thực sự trừu tượng mà tôi cố gắng thực thi một loạt logic nghiệp vụ, nhưng sau đó tôi nhận ra rằng trong hầu hết các trường hợp, dữ liệu tôi đang cố gắng hiển thị trong mỗi trường hợp hoàn toàn khác và tái sử dụng không hoạt động. Vì vậy, tôi chỉ bắt đầu phá vỡ ViewModels của tôi thành những mảnh rất nhỏ được sử dụng một lần. Cho đến nay điều này đã làm việc tốt.
Hầu hết logic nghiệp vụ của tôi giờ đây tôi cố giữ mô hình thay vì kiểu xem. Tôi trường hợp của tôi mô hình của tôi là một mô hình khuôn khổ thực thể và tôi đặt logic kinh doanh trong các lớp học một phần treo ra khỏi các đối tượng DB của tôi.
Tôi nghĩ bạn hiểu nhầm mục đích của việc tách Chế độ xem và Mô hình trong Mẫu điều khiển chế độ xem mô hình.
Chế độ xem là về cách xác định cách người dùng sẽ thấy dữ liệu tức là trang web sẽ trông như thế nào.
Mô hình xác định dữ liệu sẽ được sử dụng tức là nội dung mà chế độ xem sẽ hiển thị.
Nếu bạn quyết định rằng bạn cần hai trang web khác nhau để xem dữ liệu và chỉnh sửa dữ liệu thì nó sẽ phù hợp với mẫu MVC mà hai trang này sẽ có các kiểu và chế độ xem riêng biệt.
Nhưng tôi thường chống phân tách việc xem và chỉnh sửa dữ liệu thành hai trang web. Với ajax ngày hôm nay tôi sẽ chỉ làm điều đó trong một trang web.
- 1. Thêm cột Chỉnh sửa vào lưới telerik bằng ASP.Net MVC 2 và Telerik MVC (2010 Q1)
- 2. Ủy quyền tùy chỉnh ASP.NET MVC
- 3. ASP.Net MVC Tuỳ chỉnh xác thực
- 4. Chỉnh sửa và Tiếp tục không hoạt động trong VS 2010/ASP.Net MVC 2
- 5. Ví dụ về ASP.NET MVC về chỉnh sửa nhiều bản ghi con
- 6. Tôi có thể chỉnh sửa Asp.net Mvc cshtml sau khi xuất bản không?
- 7. Làm cách nào để chỉnh sửa một số điện thoại IE2umervới ASP.NET MVC 3?
- 8. ViewModels hoặc ViewBag?
- 9. ASP.NET MVC Lỗi tùy chỉnh xử lý Application_Error Global.asax?
- 10. Các trang lỗi tùy chỉnh ASP.NET MVC với Magical Unicorn
- 11. Ủy quyền tùy chỉnh trong ASP.NET MVC 3
- 12. Giải thích ràng buộc mô hình tùy chỉnh ASP.Net MVC
- 13. MVC 3 WebGrid - có thể chỉnh sửa nội dòng không?
- 14. ASP.NET MVC thực hiện sử dụng tùy chỉnh validator IClientValidatable
- 15. ASP.NET MVC - Tôi có nên sử dụng Pattern Repository để viết ViewModels vào cơ sở dữ liệu hay chuyển đổi chúng thành Models trước không?
- 16. Thành phần ASP.NET để chỉnh sửa các tệp .resx
- 17. Chỉnh sửa bảng bằng ASP.Net - Quick 'n Dirty
- 18. Populating ASP.NET MVC DropDownList
- 19. Điều khiển tùy chỉnh với ASP.NET MVC Razor
- 20. Asp.net MVC 4 + WEB API - Mã xác thực tùy chỉnh
- 21. ASP.net MVC đường tùy chỉnh xử lý/chế
- 22. Tùy chỉnh MVC AuthorizeAttribute cho ASP.NET Web API
- 23. Định tuyến tùy chỉnh ASP.NET MVC cho tìm kiếm
- 24. ASP.NET MVC Tuỳ chỉnh trang Lỗi (StatusCode 404 ném 500)
- 25. ASP.NET MVC 3 - tuyến đường thân thiện Tuỳ chỉnh SEO
- 26. Asp.net MVC Razor - Tùy chỉnh javascript bên trong nếu chặn
- 27. Umbraco hoặc ASP.NET MVC
- 28. Asp.NET MVC Html.TextBox refresh problem
- 29. Cấu trúc xem ASP.Net MVC
- 30. RadioButtonFor trong ASP.NET MVC 2
Anh ấy đang nói về Chế độ xem, chứ không phải Chế độ xem và Mô hình. – UpTheCreek
Và sự khác biệt sẽ là gì? – eaglestorm