Вы должны использовать просмотр моделей во всех случаях. Поэтому независимо от того, как выглядят ваши модели 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")
)
Если вы не используете модели представлений, вам будет сложно адаптировать существующие модели к ситуациям, для которых они не предназначены.