ASP.net MVC - bagaimana tampilan mengakses model?

Di semua Diagram MVC yang pernah saya lihat, selalu ada hubungan antara Tampilan dan Model, yang menunjukkan bahwa Tampilan memiliki akses ke Model.

Saya hanya bertanya-tanya: Kapan ini berlaku? Saat ini, Tindakan Pengontrol saya mengambil Parameter dari QueryString, menanyakan Model untuk mendapatkan MyObjectViewData, dan kemudian mengembalikan Tampilan, meneruskan MyObjectViewData. Jadi pada dasarnya saya memiliki Pengendali di antaranya.

Tampaknya ini merupakan pendekatan yang logis, namun tidak sesuai dengan asumsi bahwa Model dan View mempunyai bisnis yang sama.

Situasi apa yang biasa terjadi saat mereka berinteraksi tanpa Pengendali?


person Michael Stum    schedule 03.05.2009    source sumber


Jawaban (1)


Di MVC (di web), Tampilan berinteraksi langsung dengan Model dengan merender instance tertentu dari entitas Model. Ia hanya bertindak secara tidak langsung pada Model melalui Pengontrol. Dalam implementasi non-web, Anda dapat menggunakan pola pengamat untuk mendaftarkan penangan dengan elemen Tampilan yang dapat memanggil metode dalam Model yang memperbarui Model tanpa interaksi Pengontrol. ASP.NET MVC dan implementasi berbasis web lainnya digabungkan secara lebih longgar dibandingkan implementasi non-web. Menurut pendapat saya, ini adalah hal yang baik. Hal ini cenderung membuat implementasi Pengontrol menjadi lebih gemuk dan Anda harus berhati-hati untuk menjaga pemisahan masalah antara Pengontrol dan Model.

Implementasi web mungkin harus diambil tanpa koneksi tidak langsung dari Model ke Tampilan karena Anda tidak dapat berkomunikasi antara keduanya tanpa Pengontrol. Saya kira orang dapat berargumentasi bahwa layanan web dapat menyediakan koneksi ini, tapi saya akan menganggapnya hanya sebagai bentuk lain dari Pengendali.

person tvanfosson    schedule 03.05.2009