2010-01-31 52 views
1

我正在做ASP.NET MVC中的第一個項目,並使用ScottGu的book中的NerdDinner示例項目作爲指導。在他的項目中,他所有的強類型視圖都與他定義的對象(例如晚餐)完美對應。這並不是真正的商業應用。例如,在我的應用程序中,一個頁面(例如View)從主要對象獲取大部分信息,該主要對象是從強類型視圖創建而來的。但它也必須顯示來自其他十幾個對象的信息。將多個對象發送到ASP.NET MVC視圖的模式

那麼,將所有這些信息傳遞給View的首選模式是什麼?

  • 我是否通過Model和其他信息通過ViewData傳遞主對象?
  • 是否爲每個視圖創建一個主對象,其中包含我可能需要用於該頁面的所有數據?
  • 有沒有更好的方法?
+1

儘量避免「ViewData」! ViewModel ist強類型和比數據樁更好:-) – Robert 2010-01-31 15:38:41

回答

4

您可以用Data Transfer Object來定義強類型View

例如:您的View需要Student列表和Teacher列表,那麼你可以定義一個數據傳輸對象(包裝):

public class FrontPageDTO 
{ 
    public List<Student> StudentList { get; set; } 
    public List<Teacher> TeacherList { get; set; } 
} 

那麼這DTO的實例傳遞給你的View

1

除了查看模型,您還可以使用動作過濾器將「參考數據」從控制器傳遞到視圖。關於它,請參閱article

相關問題