私の見解では次のとおりです。
<div class="editor-field">
@Html.DropDownListFor(x => x.Subject, (IEnumerable<SelectListItem>) ViewBag.Clients)
</div>
これは私がビューを呼び出す方法です:
var list = new List<SelectListItem>
{
new SelectListItem {Text = "Gas Order", Value = "delivery"},
new SelectListItem {Text = "Account Services", Value = "account"},
new SelectListItem {Text = "Service Call", Value = "service"},
new SelectListItem {Text = "Inquiry", Value = "inquiry"}
};
ViewBag.Clients = list;
ビューを返します();
そして、これは私のモデルにあります:
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Text)]
[Display(Name = "Subject")]
public string Subject { get; set; }
選択した値を返そうとしています。
画面のエラーが原因で画面をリロードすると、次のエラーが発生します。
キー 'Subject' を持つ ViewData アイテムはタイプ 'System.String' ですが、タイプ 'IEnumerable' である必要があります。
私はそれがこの行によるものだと仮定しています:
public string Subject { get; set; }
その場合、選択したアイテムをモデルに戻すにはどうすればよいですか?