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)