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

问题描述 投票:0回答:1

当我传递下拉列表框值时出现以下错误..

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

我在视图代码中做错了什么吗?

asp.net-mvc asp.net-mvc-2
1个回答
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;" }
) %>
© www.soinside.com 2019 - 2024. All rights reserved.