具有键'SelectedItem'的ViewData项的类型为'System.String',但必须是'IEnumerable类型' [重复]

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

我有一个下拉列表,正确填充页面加载,但当我选择一个选项并将其与其他字段中的数据一起提交时,我收到此错误。我需要将其重置为默认值吗?在下面的代码中,“Industries”是一个SelectListItem类型的List。

@using (Html.BeginForm())
{
    @Html.DropDownListFor(n => n.SelectedItem, Model.Industries)
     <br>
      //MORE CONTROLS 
     <br>
     <input type="submit" value="Calculate" />
 }

[HttpGet]
public ActionResult Calculate()
{
    ClassName DataStuff = new ClassName ();
    return View(new ClassName { Industries = DataStuff.IndustryList() 
});
}

[HttpPost]
public ActionResult Calculate(ClassName  Items)
{
 ClassName CompleteItems = RetrieveData(Items);  
      // above additional calculations 
        return View(CompleteItems);
}

模型(带有相关字段)是:

public class ClassName
{

    public string SelectedItem { get; set; }
    public IEnumerable<SelectListItem> Industries { get; set; }
    public List<SelectListItem> IndustryList()
    {
       //populating the DDL
    }
}
c# asp.net-mvc
1个回答
-1
投票

1.将行业定义为IEnumerable<SelectListItem>

如果你把工业定义为List<SelectListItem>铸造工业到IEnumerable像

(IEnumerable<SelectListItem>)Model.Industries

2.在你的模型中,代替public string SelectedItem { get; set; }使用

public string Industry{ get; set; }

在视图更新与新属性use @Html.DropDownListFor(n => n.Industry, Model.Industries)

© www.soinside.com 2019 - 2024. All rights reserved.