州と国を選択する必要がある登録ページがあります。これらのドロップダウンに入力される項目は、外部データベースから取得されます。
ページがレンダリングされる前に、これらのリストを作成する呼び出しを行うにはどうすればよいですか?
public class RegisterModel
{
...
public IEnumerable<SelectListItem> States {get;set;}
public IEnumerable<SelectListItem> Countries {get;set;}
...
}
//Register.cshtml
@model Adw.Web.Models.RegisterModel
@Html.LabelFor(m => m.State)
@Html.DropDownListFor(m =>m.State, new SelectList(Model.States))
//Controller
public ActionResult Register()
{
.....
RegisterModel rm = new RegisterModel();
//The factories return List<string>
rm.States = new SelectList(stateFactory.Create(states.Payload));
rm.Countries = new SelectList(countryFactory.Create(country.Payload));
return View(rm);
}
上記のセットアップで私は受け取ります:
キー「State」を持つ「IEnumerable」タイプの ViewData アイテムはありません。
概要 - ページがレンダリングされる前に、2 つのドロップダウンのデータを取得するために Web サービス呼び出しを行う必要があります。