7

Bối cảnh: Tôi đã suy nghĩ về điều này trong một thời gian và tôi không tìm thấy bất kỳ câu trả lời hay nào cho nó. Sau khi làm việc một thời gian với WebForms và định kỳ với MVC 2,3 và 4 tôi vẫn không hiểu làm thế nào ASP.NET MVC có thể yêu cầu được thực hiện mô hình MVC. Một trong những điều đầu tiên tôi học về MVC (pattern) là nó là cyclic - có nghĩa là View sử dụng Controller để cập nhật Model cập nhật View - và theo cách này, nó tròn, tròn và tròn. Đương nhiên với Người dùng trong vòng kết nối để nhập hướng dẫn/dữ liệu mới, v.v.ASP.NET MVC có thực hiện sai sót đối với mẫu kiến ​​trúc MVC không?

Tuy nhiên, ASP.NET MVC không thực sự là một triển khai cyclic, được minh họa độc đáo trong hình ảnh màu bên dưới từ W3CSchools. Tôi cũng đã thấy điều này trong thực tế, nơi View có một thể hiện của một Model và Model được cập nhật từ Controller nhưng ở đây Controller cũng chịu trách nhiệm cập nhật View sau khi Model đã được cập nhật.

Câu hỏi: ASP.NET MVC có được thực thi sai một cách có ý thức và nó chỉ được xem là giải thích độc quyền hay tôi hiểu lầm các quy tắc của mẫu MVC?

ASP.NET MVC MVC Architectural pattern

+1

Tốt câu hỏi. Các triển khai khác của các khung MVC mà tôi đã thấy cô lập khung nhìn từ mô hình. Phát triển iOS và Android là các ví dụ. Trong ASP.NET MVC, bạn có thể sử dụng mô hình bên trong khung nhìn. – Slavo

+2

Có sai. Chủ yếu là vì phiên bản 1.x ban đầu lấy Rails làm mẫu (mà thực sự thực hiện một sự bastardization kỳ lạ của PAC và PageController mix). Các phiên bản ASP.NET MVC hiện tại vẫn đang chịu sự lựa chọn này. –

+0

Đánh dấu là câu trả lời nếu tôi có thể. – Marcus

Trả lời

-2

The (Database) Model không cập nhật xem, bộ điều khiển cập nhật xem trong khi đi qua các Xem các mẫu nếu bạn sử dụng mô hình quan điểm riêng (mà bạn nên)

+0

Trong ASP.NET MVC có, nhưng điều này không ngụ ý trong mẫu MVC theo như tôi biết. Thay vào đó, trong mẫu, Model sẽ cập nhật View, không có sự can thiệp nào từ Controller. Tôi không chắc chắn rằng tôi đồng ý rằng mô hình này bằng với cơ sở dữ liệu. Tôi thấy mô hình như là một đại diện của một mô hình dữ liệu. Bên cạnh đó, không trả lời câu hỏi của tôi. – Marcus

+0

Vâng nếu bạn đọc bài viết wikipedia nó nói rằng mô hình MVC đã phát triển và đó là chính xác những gì đang xảy ra với các xu hướng phát triển web hiện tại 'Khái niệm MVC đầu tiên này được định nghĩa là" mô-đun giao dịch với đầu vào "(tương tự như cách Giao diện xem với đầu ra). Bộ điều khiển, trong các ứng dụng hiện đại của thập niên 2000, là một mô-đun, hoặc phần trung gian của mã, trung gian truyền thông (giữa Mô hình và Chế độ xem) và thống nhất xác nhận, sử dụng cuộc gọi trực tiếp hoặc Trình quan sát - để tách Mô hình khỏi Xem trong Model đang hoạt động.' – matthijsb

+0

Vâng, chắc chắn, nhưng để phát triển không phải là điều tương tự như đi trong tất cả các hướng có thể trong khi duy trì tên. Đó là lý do tại sao chúng tôi có MVVM, MVP, DCI và nhiều hơn nữa tất cả bắt nguồn từ mô hình MVC nhưng với những đặc điểm riêng của nó. Lưu ý: Nhận xét tiếp tục thay đổi về tôi; Thực tế là bộ điều khiển giao dịch trong giao tiếp 'giữa Mô hình và Chế độ xem' không nói bất cứ điều gì về hướng truyền thông.Tôi vẫn nghĩ rằng một MVC thực sự nên được tuần hoàn và do đó, thông tin liên lạc nên chỉ từ xem để điều khiển để mô hình để xem. – Marcus

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