2013-07-12 61 views
2

我有串名单:默认值设置为一个选择列表

public static readonly List<string> LIST_ITEM_STATE = new List<string> 
{ 
    "Brand new", 
    "Never used", 
    "Slightly used", 
    "Used", 
    "Heavily used", 
    "Damaged", 
    "Ruined", 
    "Run for your life" 
}; 

而且我建立一个选择列表的这样一类:

public string mItemState { get; set; } 
public IEnumerable<SelectListItem> mItemStateList { get; set; } 

mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE); 

而且,在我看来,我使这样的dropdownlistfor:

Item State: @Html.DropDownListFor(_item => _item.mItemState, Model.mItemStateList, String.Empty) 

的下拉列表就像一个魅力,但我一直在寻找各种方法来设置由德选定值faul Brand New,同时保留String.Emtpty选项。我怎么能这样做?

+0

请不要在'm'前加上你的属性。这不仅是一个可怕的匈牙利符号爆炸,它完全没有必要,因为当然*属性是成员。 –

+0

那么你会提出什么建议?这些都是我们公司实施的实践,可以轻松辨别成员,方法参数和内部方法变量。 – hsim

+0

如果你的公司坚持在本质上是成员的东西加上前缀,那么我建议你解雇写这些标准的人。 :) –

回答

1

我想你可以这样做:

public static readonly List<string> LIST_ITEM_STATE = new List<string> 
{ 
    string.Empty, 
    "Brand new", 
    "Never used", 
    "Slightly used", 
    "Used", 
    "Heavily used", 
    "Damaged", 
    "Ruined", 
    "Run for your life" 
}; 

而且在SelectList设置选定值:

mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE, "Brand new"); 

,或者确保该属性的值设置为初始值:

_item.mItemState = "Brand new"; 
+0

工作就像一个魅力,谢谢:) – hsim

0

定义您的SelectList像这样:

mItemStateList = new SelectList(ValueDomain.LIST_ITEM_STATE, mItemState);