我从一个枚举中创建了一个SelectList。枚举有一个描述,并且将int值设置为我想要存储在数据库中的值。为什么我的下拉列表默认为给定值?
问题是,我在施工上设置的默认(BLANK)没有被使用。
这是我的枚举:
public enum Stage
{
[Description("")]
BLANK = -99,
[Description("No Data")]
NoData = 9999,
[Description("Nil")]
Nil = 0,
[Description("Action")]
SAction = 1,
[Description("Action Plus")]
SActionPlus = 2,
[Description("Full")]
Full = 3
}
我在我的控制器创建它:
private static IEnumerable<SelectListItem> GenerateSenStageList()
{
var values = from Stage e in Enum.GetValues(typeof(Stage))
select new { ID = (int)e, Name = e.ToDescription() };
return new SelectList(values, "Id", "Name", (int)Stage.BLANK);
}
如果我想设置所选项目的最后一个参数。 我将其指定为ViewData的,和访问它像:
<%= Html.DropDownList("Stage", (IEnumerable<SelectListItem>)ViewData["StageList"])%>
然而,无总是选择值。
我在这里错过了什么?
谢谢!
如果这是真的,那么我很惊讶。我认为int的值(在这种情况下ID)类型将正确匹配选定的值也是int。有趣。 – Tx3 2011-02-17 08:48:41
但是选定的值不是int类型的。这是一个匿名类型包含一个int和一个阶段 – 2011-02-17 08:58:35