ASP.net MVC - มุมมองเข้าถึงโมเดลได้อย่างไร

ใน MVC Diagrams ทั้งหมดที่ฉันเห็น มีความเชื่อมโยงระหว่าง View และ Model อยู่เสมอ ซึ่งบ่งชี้ว่า View สามารถเข้าถึง Model ได้

ฉันแค่สงสัยว่า: สิ่งนี้จะมีผลเมื่อใด? ในขณะนี้ ฉันมีการดำเนินการของคอนโทรลเลอร์โดยใช้พารามิเตอร์จาก QueryString ค้นหาโมเดลเพื่อรับ MyObjectViewData จากนั้นส่งคืนมุมมอง โดยส่งผ่านใน MyObjectViewData โดยพื้นฐานแล้วฉันมีคอนโทรลเลอร์อยู่ระหว่างนั้น

นี่ดูเหมือนจะเป็นแนวทางที่สมเหตุสมผล แต่ก็ไม่สอดคล้องกับสมมติฐานที่ว่า Model และ View มีธุรกิจร่วมกัน

สถานการณ์ทั่วไปที่พวกเขาโต้ตอบโดยไม่มีตัวควบคุมคืออะไร


person Michael Stum    schedule 03.05.2009    source แหล่งที่มา


คำตอบ (1)


ใน MVC (บนเว็บ) มุมมองโต้ตอบโดยตรงกับโมเดลโดยการแสดงผลอินสแตนซ์เฉพาะของเอนทิตีโมเดล โดยจะกระทำโดยอ้อมกับโมเดลผ่านตัวควบคุมเท่านั้น ในการใช้งานที่ไม่ใช่เว็บ คุณสามารถใช้รูปแบบผู้สังเกตการณ์เพื่อลงทะเบียนตัวจัดการด้วยองค์ประกอบ View ที่อาจเรียกใช้เมธอดใน Model ที่อัปเดต Model โดยไม่มีการโต้ตอบกับคอนโทรลเลอร์ ASP.NET MVC และการใช้งานบนเว็บอื่นๆ นั้นมีความเชื่อมโยงกันอย่างหลวมๆ มากกว่าการใช้งานที่ไม่ใช่บนเว็บ ในความคิดของฉันนี่เป็นสิ่งที่ดี มีแนวโน้มว่าจะทำให้การใช้งานคอนโทรลเลอร์มีปริมาณมากขึ้น และคุณต้องระมัดระวังในการแยกข้อกังวลระหว่างคอนโทรลเลอร์และโมเดล

การใช้งานเว็บอาจควรจะวาดขึ้นโดยไม่มีการเชื่อมต่อทางอ้อมจาก Model ไปยัง View เนื่องจากคุณไม่สามารถสื่อสารระหว่างทั้งสองได้จริงๆ หากไม่มี Controller ฉันคิดว่าใครๆ ก็สามารถแย้งได้ว่าบริการเว็บสามารถให้การเชื่อมต่อนี้ได้ แต่ฉันคิดว่ามันเป็นเพียงแค่รูปแบบอื่นของคอนโทรลเลอร์

person tvanfosson    schedule 03.05.2009