您應該在所有情況下都使用視圖模型。所以不管你的NHibernate模型如何看起來像你試圖在視圖中顯示一個下拉列表。因此,作爲始終通過定義,將舉行必要的信息,以通過此視圖中使用的視圖模型開始:
public class CategoryViewModel
{
public int SelectedItemId { get; set; }
public IEnumerable<SelectListItem> Items { get; set; }
}
,然後你將有一個控制器動作將從一個存儲庫中取出模型,並將其映射到該視圖模型:
public ActionResult Index()
{
Category category = ...
// Example using AutoMapper
CategoryViewModel viewModel = Mapper.Map<Category, CategoryViewModel>(category);
return View(viewModel);
}
,並在視圖簡單:
@Html.DropDownListFor(
x => x.SelectedItemId,
new SelectList(Model.Items, "Value", "Text")
)
如果你不使用你會掙扎到您現有的模型適應形勢視圖模型爲此他們不是這個意思。
如何合理地處理這樣一個事實,即沒有一個項目可以被選中。 – GUZ 2011-04-17 17:34:22