ASP.NetでMVC3を使用していますが、私のWebアプリはViewModelとViewModelビルダーを使用して設計されています。
Builderクラスを使用して、ViewModelにいくつかのデータを入力します。私の場合、作成ビューにDropDownListがあり、このコードは正常に機能します。私の問題は、編集ビューを作成しようとすると、次のエラーが発生することです。
{"The ViewData item that has the key 'CandidateId' is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'."}
私の考えでは、DropDownListに値を入力しますが、データベースレコードとして事前に選択しておきます。
では、データベースから値を選択して、編集ビューにドロップダウンリストを表示するにはどうすればよいですか?
見る
<div class="editor-label">
@Html.LabelFor(model => model.CandidateId)
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.CandidateId, Model.CandidatesList, "None")
</div>
モデルを見る
public Nullable<int> CandidateId { get; set; }
public IEnumerable<SelectListItem> CandidatesList;
モデルビルダーを見る
// We are creating the SelectListItem to be added to the ViewModel
eventEditVM.CandidatesList = serviceCandidate.GetCandidates().Select(x => new SelectListItem
{
Text = x.Nominative,
Value = x.CandidateId.ToString()
});