到目前爲止,我已經使用Model類來嵌入相關值的列表,以在視圖中呈現爲DropDownList。例如,假設我有一個其中有使用存儲庫類時的Html.Dropdownlist值
public class Contact {
...
public int ContactTypeID { get; set; }
...
}
ContactTypeID一個ContactType屬性跟模型類,它包含所有的接觸類型,如客戶,供應商,等等。我已經成功地使用,直到數據庫表中引用的行現在所謂的聯繫類的屬性,例如,ContactTypeList如下面的示例
public IEnumerable<SelectListItem> ContactTypeList {
get {
return GetContactTypeList().Select(
t => new SelectListItem { Text = t.Description,
Value = t.ContactTypeID.ToString() });
}
}
這種方式使用強類型的意見時,我可以做以下方式
<%: Html.DropDownListFor(model => model.ContactTypeID, Model.ContactTypeList, new {})%>
這種方法沒有任何問題,但從SoC角度來看並不完全清潔。
在一個新項目中,我開始使用存儲庫模式和StructureMap作爲DI/IoC工具,因此模型類不再有對從基礎數據獲取數據的存儲庫類的引用商店。
我知道我總是可以使用控制器和ViewData/ViewBag讓這些列表通過視圖,但我想知道這是否是實現範圍的好方法。
您的項目過得怎麼樣?實現結果並讓代碼保持清潔的最佳方式是什麼?
感謝您的幫助
好東西!!感謝您的自動映射建議:) – Lorenzo 2011-01-26 01:08:16