我有一个在页面加载时正确填充的下拉列表,但是当我选择一个选项并将其与其他字段中的数据一起提交时,我收到此错误。我需要将其重置为默认值吗?在下面的代码中,“Industries”是一个SelectListItem类型的列表。
@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
}
}
答案 0 :(得分:-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)