您应该在所有情况下都使用视图模型。所以不管你的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