我正忙于按照 Orchard 文档中的教程向用户内容类型添加自定义内容部分。它使用一个视图模型来声明一个用于下拉列表的列表,如下所示:
public IEnumerable<SubscriptionPackageRecord> Packages { get; set; }
...
Packages = _userSubscriptionService.GetPackages()
GetPackages
在哪里IEnumerable<SubscriptionPackageRecord> GetPackages()
。然后,在编辑器模板中,他们使用有点笨拙的代码来填充下拉列表:
@Html.DropDownListFor(model => model.PackageId,
Model.Packages.Select(s => new SelectListItem {
Selected = s.Id == Model.PackageId,
Text = s.Name,
Value = s.Id
}),
"Choose a package...")
我希望将模型的 Packages 属性声明为 SelectList 类型,并使用简单的一行调用DropDownListFor
,但我怀疑在更接近业务层类(内容部分驱动程序)中创建选择列表的实践是否良好。System.Web.Mvc
导入驱动程序类并在那里创建和分配一个SelectList
对象会是不好的做法吗?