0
我有这样的代码:获得一个MVC DropDownList中显示所选项目
@Html.DropDownList("ddlCouponsAppointment",
Model.Coupons.Select(a => new SelectListItem {
Text = a.Name,
Value = a.CouponId.ToString(),
Selected = (a.CouponId == Model.CouponForAppointmentReminders.CouponId)
}),
"None",
new { @class = "normalcell" })
这为年龄编制。现在,它会抛出一个错误,这是谷歌告诉我的一个错误,因为我不允许在映射到类的实体上调用ToString(这个类没有改变,所以我不知道它是如何工作的)。所以我添加了一个名为CouponIdStr的属性,它是一个字符串表示。这不起作用(爆炸B/C该属性未映射到数据库)。我试着让值等于string.Empty + a.CouponId(因为C#会将它连接成一个字符串)。它爆炸了。
所以,我想这一点:
@Html.DropDownList("ddlCouponsAppointment",
new SelectList(Model.Coupons,
"Name",
"CouponId",
Model.CouponForAppointmentReminders.CouponId),
"None",
new { @class = "normalcell" })
这工作,但不显示所选项目。有没有人有什么建议 ?
在你的第二个代码块中,我看不到Selected =(a.CouponId == Model.CouponForAppointmentReminders.CouponId)How do you say to @ Html.DropDownList to select something then? – 2012-01-27 02:24:25
你错过了发生了什么。 SelectList构造函数为选定的值提供一个参数。事实证明,我的名字和优惠券是错误的。我试着发表一个答案,但是SO不让我这样做(我点击'答案'并浏览了一下,所以我没有看到答案),所以这就是为什么这是坐在这里没有解决方案,尽管我找到了一个。仍然想知道为什么没有办法让第一块代码工作,我可以看到。 – cgraus 2012-01-27 03:16:24