私は3つのdropdownlistforを編集モードで持っていますが、DDLForで正しいテキストを入力できますが、IDは送信時に0になりますが、それは正しいIDで出てくる。選択したテキストと値のドロップダウンリストASP.NET MVC
public List<SelectListItem> TeamOneList { get; set; }
public string SelectedTeamOne { get; set; }
.... //remaining properties for DDL's..........
コントローラ
List<SelectListItem> TeamOneList = new List<SelectListItem>();
foreach (var item in db.Teams)
{
TeamOneList.Add(new SelectListItem { Text = item.TeamName, Value = item.TeamId.ToString() });
}
string SelectedTeamOne = db.Teams.Where(o => o.TeamId == fixture.TeamOneId).Select(s => s.TeamName).Single();
見る私のコード
ViewModelにされ、次の
@Html.DropDownListFor(model => model.TeamOneId, Model.TeamOneList, Model.SelectedTeamOne, new { @class = "form-control" })
さらに簡単DropDownListFor 'の3番目のパラメータ()'ラベルがある( 'null'なのでオプション)
を使用したりすることができます。 '' Model.SelectedTeamOne'ではなく ''を選択してください。 –
第2に、 'TeamName'プロパティにバインドしても、オプション値は' TeamId'プロパティ用です。 '.Select(s => s.TeamId)'でなければなりません( 'TeamId'は' int'のように見えるので 'SelectedTeamOne'も' string'ではなく 'int'でなければなりません) –
編集モードではスティーブン – user3543878