我拉我的頭髮在這裏。我使用MVC3的DropDownListFor
HTML輔助用枚舉,像這樣:奇怪的DropDownListFor/SelectListItem問題沒有設置默認值
@Html.DropDownListFor(model => model.Title, Enum.GetValues(typeof(ICS_Signup_Form.Models.Titles)).Cast<ICS_Signup_Form.Models.Titles>().Select(x => new SelectListItem { Text = x.ToString().ToFriendlyString(), Value = x.ToString() }), new { @class = "styled" })
我枚舉看起來像這樣:public enum Titles { Mr, Dr, Miss, Mrs, Ms, Other };
如果Model.Title
等於「其他」,然後在下拉列表中沒有選擇這個值,HTML中沒有selected="selected"
。我已經嘗試將:Selected = (x.ToString() == Model.Title)
的屬性Selected
添加到SelectListItem
,並且表達式正常工作,但是所選值始終爲「Mr」(列表中的第一個)。
這工作完全正常什麼是更加古怪(如做其他7個下拉框我已經在我的項目):
@Html.DropDownListFor(model => model.BusinessStatus, Enum.GetValues(typeof(ICS_Signup_Form.Models.BusinessTypes)).Cast<ICS_Signup_Form.Models.BusinessTypes>().Select(x => new SelectListItem { Text = x.ToString().ToFriendlyString(), Value = x.ToString() }), new { @class = "styled" })
隨着枚舉:public enum BusinessTypes { Charity, Government, Limited, LLP, Partnership, PLC, SoleTrader };
的區別?沒有..任何想法?
這很難說,但由於某種原因平等是關閉...可能是因爲在字符串中的編碼,或可能存在,拋出它關閉標題另一個字符...你試試將標題寫出到瀏覽器並驗證它與av匹配Alue 100%? – 2011-05-12 13:09:43
是的,它從瀏覽器輸出和數據庫中匹配100%。 – eth0 2011-05-13 09:49:59