在asp,net mvc应用程序中显示下拉列表框值时出现的问题

时间:2011-03-11 17:30:37

标签: asp.net-mvc asp.net-mvc-2

当我分配下拉列表框值时,我收到以下错误。

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; }

我的视图代码中出错了吗?

任何人都可以帮助我

感谢

1 个答案:

答案 0 :(得分:1)

您的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;" }
) %>