2012-10-02 133 views
1

我只是如何正確數據傳遞到使用MVC模式的圖一個簡單的問題。模型視圖在MVC

我有一個EditProfile /註冊模型(姓名,電子郵件,國家)。該視圖有一個國家下拉列表,我需要通過它的國家名單。

是改正創建(只爲視圖)的新模式,即基本上封裝我EditProfile /註冊模式和列表?我是否在控制器中創建此視圖特定模型? (而不是我的數據訪問項目)。

謝謝!

+0

只是爲了澄清,您使用ASP.Net MVC?如果是這樣,請將版本特定標籤添加到您的問題中,而不僅僅是'mvc'標籤。所以如果你使用ASP.Net MVC 2,使用'asp.net-mvc-2'標籤。 – Gromer

回答

2

視圖模型(ASP.Net MVC視圖)是不相關的域模型(一個在數據層),除了名字。這個MVC: Data Models and View Models問題涵蓋了細節上的差異/相似之處。

你在你的ASP.Net MVC項目的地方創建視圖模型(而不是在數據層),通常放在「模型」或「的ViewModels」文件夾同級控制器文件夾。根據視圖,可以共享某些視圖模型類,但您也可以使用單個視圖使用的一些視圖模型類。

0

您有兩種方法來完成這項任務

(一)推薦

創建一個視圖模型 在你的視圖模型類分配的構造函數中添加類型選擇列表的

<code> 

    public SelectList countrylist 
     { 
      get; 
      set; 
     } 
</code> 

的屬性國家表中的國家列表。

<code> 

    countrylist= new SelectList(db.countries.ToList(), "CountryID", "CountryName"); 

</code> 
視圖

添加

<code> 
    Html.DropDownList("CountyID", Model.countrylist,"Select") 
</code> 

(ii)只使用,如果你要使用這個模型極少數的意見(如你的情況看來)

不作viewmodel,而不是使用jquery,並且在vew頁面的文檔準備中爲國家列表添加一個html選項。