我正在使用此代码将数据库表中的值输入到下拉列表中:
<div class="editor-field">
@Html.DropDownListFor(model => model.TourImageID, new SelectList(Model.Images, "ImageID", "Filename", Model.TourImageID))
</div>
我要做的是在列表顶部添加一个项目,该项目不在数据库表格中。
像DROPDOWN LIST VALUES = (DEFAULT-ITEM) + (DATABASE-TABLE-ITEMS)
可能吗?如果是这样,怎么样?
答案 0 :(得分:0)
如果Model.Images
类型为SelectList
,您可以在控制器中执行以下操作:
var query = UnitOfWork.GlobalImageLibraryRepository.Images.Select(x => new { x.ImageID, x.Filename });
viewModel.Images = new SelectList(query.AsEnumerable(), "ImageID", "Filename");
viewModel.Images.Insert(0, new SelectListItem { Value = "0", Text = "--Select--" });
我假设您的GlobalImageLibraryRepository类中有一个返回IQueryable<Images>
的方法,如下所示:
public IQueryable<Images> Images { get { return dbcontext.Images; } }
毕竟,您的观点将如下所示:
<div class="editor-field">
@Html.DropDownListFor(model => model.TourImageID, (SelectList)Model.Images, Model.TourImageID))
</div>