我正在尝试将DropDownList添加到 MVC视图并不断收到以下错误。单击表单提交后会发生这种情况。任何人都可以帮助阐明这意味着什么以及我如何解决它?
错误信息
The ViewData item that has the key 'Amount' is of type 'System.String' but must be of type 'IEnumerable<SelectListItem>'.
对于上下文,这是我设置导致上述错误的模型和视图的方式
对于模型...
[Required]
[DataType(DataType.Currency)]
[Display(ResourceType = typeof(Resources.Resources), Name = "ApplicationAmountLabel")]
public string Amount { get; set; }
public IEnumerable<SelectListItem> Amounts { get; set; }
设置模型时,这是设置值的方式...
model.Amounts = GetAmounts();
...
private IEnumerable<SelectListItem> GetAmounts(List<int> amounts)
{
var list = new List<SelectListItem>();
list.Add(new SelectListItem { Text = string.Empty, Value = "0" });
foreach (var amount in amounts)
{
list.Add(new SelectListItem { Text = amount.ToString("C"), Value = amount.ToString() });
}
return list;
}
最后,这是在视图中使用它的方式...
@Html.LabelFor(m => m.Amount)
@Html.DropDownListFor(m => m.Amount, Model.Amounts, "-- Select One --")
@Html.ValidationMessageFor(m => m.Amount)