2009-07-28 43 views
32

Có ai biết về nơi tôi có thể tìm thấy hướng dẫn để xây dựng một bộ mô hình tùy chỉnh.Giải thích ràng buộc mô hình tùy chỉnh ASP.Net MVC

Tôi đã tìm thấy một số vấn đề bằng cách sử dụng trình mô hình mặc định với EntitySets (không điền khi tạo đối tượng mới và tạo bản sao trên đối tượng chỉnh sửa) và thấy giao diện người dùng của tôi không khớp chính xác với mô hình của tôi (ví dụ: trường thời gian được định dạng "hh: mm am "không khớp với một khoảng thời gian). Do đó, tôi muốn xem xét việc tạo ra một chất kết dính mô hình tùy chỉnh là một giải pháp tốt hơn. Tôi đã tìm thấy một vài ví dụ: herehere. Đầu tiên là tôi tin rằng đã lỗi thời và thứ hai không thực sự giải thích những gì đang xảy ra.

Vấn đề chính của tôi là tôi không hiểu đầy đủ những gì ControllerContext và ModelBindingContext Trong phương pháp BindModel thực sự là, tức là chúng có liên quan như thế nào với bộ điều khiển và mô hình.

Tôi sẽ biết ơn nếu ai đó chỉ cho tôi hướng dẫn hoặc có thể xem bài đăng của dave hayden và chỉ cho tôi cách nó có thể trông như thế nào với việc triển khai MVC hiện tại.

Trả lời

30

tôi đã thực sự bây giờ tìm thấy những điều sau hai bài viết đó một bản tóm tắt tốt của mô hình ràng buộc:

http://odetocode.com/Blogs/scott/archive/2009/04/27/12788.aspx

http://odetocode.com/Blogs/scott/archive/2009/05/05/12801.aspx

+1

http://odetocode.com/Blogs/scott/archive/2009/05/05/12801.aspx là một liên kết tuyệt vời. Hãy nhớ thêm bộ mô hình tùy chỉnh vào bộ sưu tập bộ sưu tập modelbinders trong application_start() – GordonB

4

Dưới đây là một lời giải thích tốt về ModelBinders mà tôi tin sẽ bao gồm các câu hỏi của bạn: http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC.aspx

Một nhanh chóng Google search kéo lên một vài người khác ... Tôi sẽ cho phép bạn lọc qua chúng :-)

+1

Cảm ơn, tôi đã thực sự đọc bài viết đó và theo dõi, nhưng điều này và hầu hết các bài viết khác được viết trước khi tái cấu trúc trong bản beta. Thay vì kế thừa từ DefaultModelBinder và ghi đè GetValue, cách tiếp cận hiện nay là triển khai IModelBinder và do đó cung cấp BindModel AFAIK. Tôi có lẽ có thể làm việc mặc dù ví dụ của Scott Hanselman nếu tôi có thể hiểu những gì đầu vào và đầu ra là BindModel(). – Richbits

Các vấn đề liên quan