这里是我会怎么做,在一个辅助方法:
public IEnumerable<SelectListItem> GetClassifiedCategories(IEnumerable<ClassifiedCategory> categories, string selectedCategoryName)
{
var list=new List<SelectListItem>();
foreach (var cat in categories)
{
var item = new SelectListItem()
{
Text = cat.Name,
Value = cat.Id
};
if (cat.Name==selectedCategoryName)
item.Selected = true;
list.Add(cat);
}
return list;
}
很显然,你会想要做一个比较,对IDS而不是名称。也可直接拨打电话到的UnitOfWork并不desirible(但从应用架构点)
这里是你将如何在一个视图(剃刀语法)使用的一个例子:
@Html.DropDownListFor(model=>model.ClassifiedCategoryId, Helpers.GetClassifedCategories(UnitOfWork.ClassifiedCategories.FindAll().OrderBy(Order()), Model.ClassifiedCategoryId))