【发布时间】:2015-08-27 09:41:35
【问题描述】:
以下工作正常。问题是我不想硬编码AvailabilityID 和AvailabilityName
public ActionResult Create()
{
SelectList AvailabilityList = new SelectList(db.Availabilities, "AvailabilityID", "AvailabilityName");
ViewBag.AvailabilityList = AvailabilityList;
return View();
}
风景来了
@Html.DropDownListFor(model => model.Availability, (SelectList)ViewBag.AvailabilityList, new
{
@class = "red",
data_placeholder = "please choose"
})
我应该如何修改上面的代码? 我有 99% 的把握使用 lambda 表达式,所以我也可以添加 order by 子句...但是其他 1% 呢?
谢谢
【问题讨论】:
-
您必须对其进行硬编码(
SelectList构造函数将string作为第二和第三个参数。为什么不使用IEnumerable<SelectListItem>? -
@StephenMuecke 实际上我想删除第二个和第三个参数,但如果我这样做,“整个 objext”会显示在视图中。我会尝试 IEnumerable
的事情 -
db.Availabilities.OrderBy(...).Select(x => new SelectListItem() { Value = x.AvailabilityID.ToString(), Text = x.AvailabilityName };
标签: entity-framework asp.net-mvc-4 c#-4.0 linq-to-entities