0
我已经在互联网上搜索了2天,找到了我的问题的答案但没有正确的答案。我如何显示球员名单中的球员mvc
这些都是我的班
public class Player
{
public int ID { get; set; }
public string Name { get; set; }
public string FirstName { get; set; }
public Team Team { get; set; }
public int TeamId { get; set; }
public class Team
{
public int TeamID { get; set; }
public string Name { get; set; }
public virtual List<Player> Players { get; set; }
我加入我的ViewModels是相同的 - >
public class CreatePlayerVM
{
public int ID { get; set; }
[Display(Name = "Last name")]
public string Name { get; set; }
[Display(Name = "First name")]
public string FirstName { get; set; }
[ForeignKey("TeamId")]
public Team Team { get; set; }
[Required]
[ForeignKey("Team")]
[Display(Name = "Team")]
public int TeamId { get; set; }
public class ListPlayerVM
{
public int ID { get; set; }
public string Name { get; set; }
public string FirstName { get; set; }
[ForeignKey("TeamId")]
public Team Team { get; set; }
public int TeamId { get; set; }
和我的球员名单的看法是这样的 - >
@Html.DisplayNameFor(model => model.Name)
@Html.DisplayNameFor(model => model.FirstName)
@Html.DisplayNameFor(model => model.Team)
@Html.DisplayNameFor(model => model.YellowCard)
@Html.DisplayNameFor(model => model.RedCard)
@Html.DisplayNameFor(model => model.Goal)
@foreach (var item in Model)
@Html.DisplayFor(modelItem => item.Name)
@Html.DisplayFor(modelItem => item.FirstName)
@Html.DisplayFor(modelItem => item.Team.Name)
@Html.DisplayFor(modelItem => item.YellowCard)
@Html.DisplayFor(modelItem => item.RedCard)
@Html.DisplayFor(modelItem => item.Goal)
和homeController
[HttpGet]
public ActionResult Players()
{
List<Player> p1 = Player.GetPlayers();
List<ListPlayerVM> p2 = new List<ListPlayerVM>();
foreach (Player p in p1)
{
p2.Add(new ListPlayerVM(p.ID, p.Name, p.FirstName, p.Team , p.TeamId, p.Goal, p.YellowCard, p.RedCard));
}
return View(p2);
}
和CreateController
[HttpPost]
public ActionResult CreatePlayer(CreatePlayerVM model)
{
if (ModelState.IsValid)
{
Player player = new Player(model.FirstName, model.Name, model.Team, model.TeamId ,0, 0, 0);
player.InsertPlayer();
}
PopulateTeamsDropDownList(model.TeamId);
return View(model);
}
如何我在创建玩家列表中显示我的teamName?厌倦了通过互联网搜索希望有人能帮助我!
https://i.stack.imgur.com/5ELCJ.jpg
public static Player GetPlayer(int id)
{
using (LeagueDBContext ctx = new LeagueDBContext())
{
return ctx.Players.Where(a => a.ID == id).SingleOrDefault();
}
}
GRTS
它不清楚是什么你问这里 - 你'@ Html.DisplayFor(modelItem => item.Team.Name)'将显示球队的名字(假设你的查询正在加载它)。并且删除你的视图模型上的[[ForeignKey(“TeamId”)]'属性(它们是EF特定的属性,并且与视图模型无关) –
我已经编辑了帖子,屏幕显示了我所得到的..它不显示名称。 – BooZzken
然后'Team'的Name属性不包含任何数据!您可能需要在查询中使用'.Include(x => x.Team)',因为您没有在数据模型中将'Team'属性标记为虚拟(您没有显示您的'GetPlayers() '方法)。你的'CreatePlayer()'方法与你的问题有什么关系? –