チームごとに4人のプレイヤーがいるので、 。私はチームにエラーを保存するために行くときリーグで選手を移入:"スキップのキーを持つタイプ 'IEnumerable <SelectListItem>'のViewDataアイテムはありません
"There is no ViewData item of type 'IEnumerable' that has the key 'Skip'`
CreateTeamコントローラ:
public ActionResult CreateLeagueTeam(int? id)
{
int leagueId = id.Value;
League league = db.Leagues.Include(x=>x.Members).First(l=> l.Id == leagueId);
var leagueMemberList = league.Members.ToList();
var leagueMemberSelectListItems = new List<SelectListItem>();
foreach(Member m in leagueMemberList)
{
leagueMemberSelectListItems.Add(new SelectListItem() { Text = m.FirstName + " " + m.LastName, Value = m.Id.ToString() });
}
ViewData["leagueMemberList"] = leagueMemberSelectListItems;
return View();
}
HTTP POSTのActionResult:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult CreateLeagueTeam([Bind(Include = "skip")] Team team)
{
team.IsBonspiel = false;
team.IsLeague = true;
// team.Name = team.Skip.LastName;
team.YearActive = games.getSeasonYear();
//finds and sets the league ID for the team
int leagueId = (int)Session["leagueId"];
League league = db.Leagues.Find(leagueId);
team.League = league;
if (ModelState.IsValid)
{
db.Teams.Add(team);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(team);
}
は最後にエラーが投げているビュー:
<div class="form-group">
@Html.Label("Skip", null, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.Skip, (IEnumerable<SelectListItem>)ViewBag.leagueMemberList, htmlAttributes: new { @class = "control-label col-md-2" })
</div>
</div>
またチームモデル:
public class Team: Entity
{
[Required]
public bool IsBonspiel { get; set; }
[Required]
public bool IsLeague { get; set; }
[Required]
public string Name { get; set; }
[Required]
public int YearActive { get; set; }
public int? SkipId { get; set; }
public Member Skip { get; set; }
public string BonspielSkip { get; set; }
public List<BonspielTeamMember> BonspielMembers { get; set; }
public List<Member> Members { get; set; }
public List<Game> Games { get; set; }
public Bonspiel Bonspiel { get; set; }
public League League { get; set; }
}
ああ、私は私を実現didntはそれをスイッチしましたが、今私はスローされました このエラー: 'メンバー'キーを持つViewDataアイテムは、 'System.Collections.Generic.List'1 [[EloraCurling.Models.Member、EloraCurling、Version = 1.0。 0.0、Culture =ニュートラル、PublicKeyToken = null]] 'IEnumerable'型である必要があります。 –
おそらく、投稿後のアクションでViewBag.leagueMemberListがnullです。 ビューバックに値を再割り当てする必要があります。 –
私はそれがHttpPostアクションに選択されている値を渡して提出ヒットするべきではない? –