2013-05-22 38 views
1

我有這樣哪種方式更好地填充MVC中的Dropdownlist?

IEnumerable<SelectListItem> Users; 

列表,我可以通過3方式填充在下拉列表中的用戶資料

1 - 使用視圖模型

Public class myViewModel 
{ 
    IEnumerable<SelectListItem> UserList; 
} 

,並填寫它像

viewmodel.UserList=GetUsers(); 

2從ViewBag中使用

ViewBag.UserList=GetUsers(); 

3,從使用的ViewData

ViewData["Users"]=GetUsers(); 

什麼是我的方式和其中一個區別是更好

+2

沒有技術上的差異。只有使用差異。強類型用法(你的第一個考試)在編譯時檢查變量類型更好... –

回答

3

有第四個方式,我認爲這是最好的一段路要走。 由於您只有一個對象(類型爲IEnumerable<SelectListItem>),因此您可以將它作爲模型傳遞給視圖(不需要中間ViewModel)。

就可能性而言,沒有真正的區別。不同之處在於你剛剛描述的第一種方法和方法是強類型的,這意味着你得到了Intellisense和編譯時驗證,而你的第二和第三個方法是弱類型的,並且你沒有智能感知和編譯時驗證。

1

在你的情況,最好使用ViewModel,因爲它是乾淨的MVC,你會得到強大的好處。 例如,如果視圖中有很多局部視圖,或者需要傳遞數據的困難佈局,ViewBag和ViewData會更好。但據我瞭解,你只需要顯示下拉列表,所以使用ViewModel。