我從一個枚舉中創建了一個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