Bir takım oluşturmayı deniyorum, takım başına 4 oyuncu var, bu yüzden içerdiği 4 seçim listesi var. ligde oyuncuları doldurmak Ben takımını hatasını kurtarmak için gittiğinizde:."Atla" anahtarına sahip 'IEnumerable <SelectListItem>' türünde ViewData öğesi yok
"There is no ViewData item of type 'IEnumerable' that has the key 'Skip'`
CreateTeam kontrolörü:
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);
}
Nihayet
Hata atılan oluyor görünüm:
<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>
Ayrıca
Takım Modeli:
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; }
}
ah i I bilmiyordum değiştirdi ama şimdi bu hata atılıyor alıyorum: 'Üye' anahtarına sahip olan ViewData öğesi 'System.Collections.Generic.List'1 [[EloraCurling.Models.Member, EloraCurling, Version = 1.0. 0.0, Culture = neutral, PublicKeyToken = null]] 'ama' IEnumerable 'türünde olmalıdır. –
belki de sonrası eylemden sonra ViewBag.leagueMemberList boştur. Değerleri tekrar viewbag'e yeniden atamanız gerekir. –
ancak gönderdiğimde, HttpPost eylemine seçilen değerleri iletmeli miyim? –