2010-10-21 63 views
1

當我需要使用的查找我通常包括在視圖模型類的ID屬性,所以我可以在具有Model.LookuptableList如在模型本身這樣的屬性相應的視圖如何處理查找?

<%= Html.LabelFor(model => model.LookupTableID)%> 
<br /> 
<%= Html.DropDownListFor(model => model.LookupTableID, Model.LookuptableList, new {}) %> 

使用這種方式:

public IEnumerable<SelectListItem> LookuptableList { 
    get { 
     return GetLookuptableList().Select(
      t => new SelectListItem { Text = t.Description, Value = t.LookupTableID.ToString() }); 
    } 
} 

但我不知道這是處理,因爲視圖模型類中的函數GetLookuptableList()的一個很好的方式。

有沒有更好/更乾淨的方式來做到這一點?

+0

那麼,GetLookuptableList()是什麼呢?爲什麼你認爲這種方法在模型中存在問題? – 2010-10-21 23:05:39

+0

該函數從底層存儲中恢復查找列表。我不認爲這是有問題的。我只是想,不應該在那裏。留在模型中並沒有正確地遵循分離的關注...... – Lorenzo 2010-10-21 23:14:00

+1

是的,洛倫佐。我認爲從視圖模型--Presentation層訪問底層存儲 - 可以用在控制器級別填充的IEnumerable成員 - 應用層來替代。所以你的viewModel可以保持對底層存儲的訪問不可知論 – SDReyes 2010-10-22 04:13:10

回答

1

您將包含查看模型的每個實例的整個查找表。有點矯枉過正。我通常創建一個靜態實用程序類與查找表返回SelectListItem