私のコントローラからドロップダウンリストを取り込み、viewbagsを通してビューに渡しました。私はフォームを提出し、null値を取得するまで、バインディングは大丈夫です。しかし、私はビュー自体にコードを入れて、それは動作します。キャストがありませんか?DropdownListはViewbagバインドから値を取得しません
"年" のための私のドロップダウンリストの抜粋:
List<SelectListItem> year = new List<SelectListItem>();
for (var i = 1990; i <= DateTime.Now.Year; i++)
{
year.Add(new SelectListItem
{
Text = i.ToString(),
Value = i.ToString(),
Selected = false
});
}
ViewBag.Year = year;
私が取得エラー\:ViewBag.YearデータはFFコードを持っている私のコントローラからであるのに対し
@Html.DropDownListFor(model => model.Year, new SelectList(ViewBag.Year, "Value", "Text"), htmlAttributes: new { @class = "form-control"})
:
ああ、私はコードを書き直す必要があります。うーん、非効率なようです。私はリストを返す独立したメソッドで人口を分離しようとし、必要な時に呼び出すことにしよう。 –
'ViewBag.Year'を生成し、そこでGET&POSTメソッドの両方でメソッドを呼び出す独立したメソッドを作成する方が好きです。私は何が間違っているのか説明しました:POSTメソッドが同じビューを返す間、 'ViewBag'は再生成されません。 –
この場合、プログラムでリストに値を設定する場合、デフォルト値を設定できません –