当我传递下拉列表框值时出现以下错误..
DataBinding: 'System.Web.Mvc.SelectListItem' does not contain a property with the name 'code'
.
这是我视图中的下拉列表框代码。
<span id="StateFilterRow"> State: <%= Html.DropDownList("StatesFilter", new SelectList(Model.StatesList, "code", "code", Model.SelectedState), new { style = "background-color: #eee; font-weight:bold;" })%></span>
这是我获取下拉列表框值的代码。
在我的结果状态中,我有状态的文本和值
Text = '{code = AL}'
在我的 ViewModel 中..
public SelectList StatesList { get; set; }
我在视图代码中做错了什么吗?
您的
getListOfStates
方法已经返回一个 SelectList
,因此在您看来,您不需要创建另一个。所以你可以修改这个方法并在那里指定属性:
private SelectList getListOfStates()
{
var values =
from s in generic.CodeTypes
join c in generic.ApplicationCodes on s.CodeType_Id equals c.CodeType_ID
where s.CodeType_Id == 26
select new
{
Code = c.Code,
};
return new SelectList(values, "Code", "Code");
}
然后在你看来:
<%= Html.DropDownList(
"StatesFilter",
Model.StatesList,
new { style = "background-color: #eee; font-weight:bold;" }
) %>