選択した項目を DropDownList にバインドする方法については、明らかにまだ何かが欠けています。
リポジトリで次のように SelectList を設定します。
public SelectList GetAgencyList(System.Guid donorId, Int32 selected)
{
AgenciesDonorRepository adRepo = new AgenciesDonorRepository();
List<AgenciesDonor> agencyDonors = adRepo.FindByDonorId(donorId);
IEnumerable<SelectListItem> ad = from a in agencyDonors
select new SelectListItem {
Text = a.Agencies.AgencyName,
Value = a.AgenciesDonorId.ToString()
};
return(new SelectList(ad, "Value", "Text", (selected == 0 ? 0 : selected)));
}
次に、コントローラーで、次のようにします。
ViewData["AgenciesDonorList"] = repo.GetAgencyList(donorId, ccResult.AgenciesDonors.AgenciesDonorId);
return View(ccResult);
ビューでは、これは次のとおりです。
<%=Html.DropDownList("AgenciesDonorList", (IEnumerable<SelectListItem>)ViewData["AgenciesDonorList"])%>
return View(...) の直前のデバッガーでは、適切な項目が選択され (true)、他のすべてが false であることがわかります。しかし、ビューでは、選択オプションは決して成功せず、最初は常に表示されます。
これは、選択したパラメーターとして int を使用することと関係がありますか?
どうも。デール