我被要求查看一些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