2013-02-15 90 views
1

我正在構建我的第一個MVC項目,並且對模型有疑問。爲MVC創建模型

每個網頁只能包含1個模型,但我的網頁需要2個模型,一個是搜索選項(縮小搜索範圍的能力,如選擇價格範圍,顏色等)以及數據。

是否真的和創建一個新模型一樣簡單,類似於ViewModel,在這種情況下,只有兩個屬性,一個SearchModel和一個ProductModel?

回答

1

是的,真的有兩個「模型」有時會讓人困惑。有「視圖模型」和「域模型」。視圖模型直接傳入視圖。領域模型描述了您正在處理的現實生活領域,並且是數據庫持久存在的領域。通常,它們是相同的東西,例如,如果您顯示單個真實域對象(例如汽車)的信息。如果您有一個頁面上有兩個域模型,則應該使用兩個屬性作爲視圖模型。

+0

完美,許多便士正在下降!這很好,非常感謝你的幫助。 – Dave 2013-02-15 12:55:06

1

如果你正在尋找有兩款車型在視圖中那麼這個問題可能提供有用的信息:

multiple-models-in-a-view

編輯:

一個很好的例子就是「管理」視圖中的缺省一個新鮮的mvc應用程序的'帳戶'控制器。它使用局部視圖來處理用戶密碼的更改。雖然兩個視圖都使用相同的模型類型,但它顯示瞭如何實現局部視圖。在這種情況下,主視圖和局部視圖都在控制器上提交相同的方法,因此他們需要使用相同的模型(這是控制器方法的參數)。但是,如果部分要調用不同的控制器方法,那麼提交的模型可能會不同。希望這是有道理:)

+0

你引用的帖子讓我感到困惑;我認爲每個頁面只能有1個模型,但答案似乎表明您可以使用部分視圖來創建多個模型。那是對的嗎? – Dave 2013-02-15 12:56:19

+0

是的局部視圖可以有自己的模型。調用局部視圖不會重新加載主頁面,因此您可以在頁面內執行某些操作,而無需刷新/提交主頁面。 – Whiplash450 2013-02-15 14:17:58