我被要求查看一些ASP.Net MVC代碼中的錯誤,並對SelectList有一個(對我來說)非常奇怪的問題。ASP.Net MVC SelectList不是'選擇'正確的項目
控制器生成項目的代碼(返回SelectList的方法,共有5個)。然後將每個SelectList保存到ViewData集合中。
List<SelectListItem> items = new List<SelectListItem>();
string yesText = "Yes";
string noText = "No";
if (ci.LCID.Equals((int)LanguageCodes.FRANCE))
{
yesText = "Oui";
noText = "Non";
}
SelectListItem yesItem = new SelectListItem();
yesItem.Text = yesText;
yesItem.Value = ((int)MarketingBy.Yes).ToString();
yesItem.Selected = selectedValue != null && selectedValue.Equals(int.Parse(yesItem.Value));
SelectListItem noItem = new SelectListItem();
noItem.Text = noText;
noItem.Value = ((int)MarketingBy.No).ToString();
noItem.Selected = selectedValue != null && selectedValue.Equals(int.Parse(noItem.Value));
items.Add(yesItem);
items.Add(noItem);
return new SelectList(items, "Value", "Text", yesItem.Selected ? yesItem.Value : noItem.Value);
快速「快速監視」在創建點表明一切正常: Select List generated http://i52.tinypic.com/x3hd3r.png
在視圖所呈現的點,值還是看行。但是,當視圖加載時,列表中的第一項是總是選擇。生成的HTML爲:
<tr>
<td>Fax</td>
<td>
<select id="MarketingByFax" name="MarketingByFax">
<option value="134300002">Yes</option>
<option value="134300001">No</option>
</select>
</td>
</tr>
(爲了清楚起見,省略其他值)。
任何想法?或研究途徑?作者堅持認爲這是「直到上週」(我不知道任何方式)。
編輯:代碼視圖 -
<td><%: Html.DropDownList("MarketingByFax", (SelectList)ViewData["MarketingByFaxList"])%></td>
您可以添加視圖中的代碼嗎?您是使用Html.DropDownList還是Html.DropDownListFor? – FlyingDeveloper 2011-06-15 18:01:44
Html。DropDownList正在被使用(現在也增加了問題) – glosrob 2011-06-15 18:44:12