C# 创建一个模型类字段,其中包含ASP.NET MVC中另一个表中的对象列表
我将在两周内学习C和ASP.NETMVC框架,我希望通过一个小型web应用程序应用这些知识。我需要你的帮助/建议,以便在两个类之间设置一个新字段 目标: 这个应用程序应该对我的足球队有用。我有第一个积垢,可以用来对付球员。我可以创建玩家,编辑玩家 我有第二个CRUD,可以处理比赛细节日期时间、音高、比赛格式 我希望能够添加特定比赛的可用球员。也就是说,能够在桌上比赛的一个场地内添加来自桌上比赛的球员列表。通过这种方式,当我详细查看一场比赛时,我可以看到球员名单,以便稍后使用JavaScript创建团队组成,如果可能的话,可以在动态图片上移动对象,而不是我目前的问题 我的班级报告: 非常简单:C# 创建一个模型类字段,其中包含ASP.NET MVC中另一个表中的对象列表,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我将在两周内学习C和ASP.NETMVC框架,我希望通过一个小型web应用程序应用这些知识。我需要你的帮助/建议,以便在两个类之间设置一个新字段 目标: 这个应用程序应该对我的足球队有用。我有第一个积垢,可以用来对付球员。我可以创建玩家,编辑玩家 我有第二个CRUD,可以处理比赛细节日期时间、音高、比赛格式 我希望能够添加特定比赛的可用球员。也就是说,能够在桌上比赛的一个场地内添加来自桌上比赛的球员列表。通过这种方式,当我详细查看一场比赛时,我可以看到球员名单,以便稍后使用JavaScript创
namespace FCSL.Models.Joueur
{
public class Joueur
{
[Key, Display(Name = "ID")]
public int JoueurID { get; set; }
[Required, Display(Name = "Nom"), StringLength(30)]
public string Lastname { get; set; }
[Required, Display(Name = "Prénom"), StringLength(30)]
public string Firstname { get; set; }
[Required]
[Display(Name = "Poste")]
public string Poste { get; set; }
public string Image { get; set; }
}
}
我在VisualStudio生成的CRUD后面找到了它,它工作得很好
我的班级比赛:
添加新字段:
现在我想在我的Match类中添加一个新字段,以便在名为ListJouers的字段中从Jouer类中选择球员列表
我必须加上这样的东西吗
[Required, Display(Name = "Joueurs")]
public List<Joueur.Joueur> ListeJoueurs { get; set; }
然后,如何显示多个选定下拉列表以在create.cshtml视图文件中显示此字段
非常感谢大家参加预赛公开课比赛
{
所有旧财产
publis字符串列表器{get;set;}
}
ViewBag.lstCourse=您的列表
@Html.DropDownListFOR(m=>m.ListeJoueurs ,ViewBag.lstCourse as selectectlsist),select"",new { @class = "form-control"})
公开课比赛
{
所有旧财产
publis字符串列表器{get;set;}
}
ViewBag.lstCourse=您的列表
@Html.DropDownListFOR(m=>m.ListeJoueurs ,ViewBag.lstCourse as selectectlsist),select"",new { @class = "form-control"})
您需要添加两个属性TeamOne和TeamTwo,并在每个团队中添加属性Players作为集合,用于保存每个团队的选定玩家 在你的班级比赛中: 添加新的班级团队: 最后,在create.chtml中添加下拉列表,如下所示:
public ActionResult Match()
{
...
var match = new MVCApp.Models.Match
{
AdversaryTeam = "Equipe de France",
Field = "Stade de France",
MatchDay = DateTime.Today,
MatchTime = DateTime.Now,
TeamOne = new Team
{
Players = new List<Player>
{
new Player { PlayerID = 1, Firstname = "Zineeddine", Lastname = "Zidane", Poste = "" },
new Player { PlayerID = 2, Firstname = "Roberto", Lastname = "Carlos", Poste = "" },
new Player { PlayerID = 3, Firstname = "Gianluca", Lastname = "Pagliuca", Poste = "" },
}
},
TeamTwo = new Team
{
Players = new List<Player>
{
new Player { PlayerID = 1, Firstname = "Zineeddine", Lastname = "Zidane", Poste = "" },
new Player { PlayerID = 2, Firstname = "Roberto", Lastname = "Carlos", Poste = "" },
new Player { PlayerID = 3, Firstname = "Gianluca", Lastname = "Pagliuca", Poste = "" },
}
}
};
var vm = new MatchPlayersVM
{
Match = match,
TeamOnePlayers = match.TeamOne.Players.Select(p => new SelectListItem { Text = p.Firstname, Value = p.PlayerID.ToString() }),
TeamTwoPlayers = match.TeamTwo.Players.Select(p => new SelectListItem { Text = p.Firstname, Value = p.PlayerID.ToString() }),
};
ViewBag.MatchVM = vm;
return View();
}
@using MVCApp.Models
@model MatchPlayersVM
@Html.DropDownListFor(m => m.TeamOneSelectedValues, ViewBag.MatchVM.TeamOnePlayers as IEnumerable<SelectListItem>, new { multiple = "multiple" })
@Html.DropDownListFor(m => m.TeamTwoSelectedValues, ViewBag.MatchVM.TeamOnePlayers as IEnumerable<SelectListItem>, new { multiple = "multiple" })
您需要添加两个属性TeamOne和TeamTwo,并在每个团队中添加属性Players作为集合,用于保存每个团队的选定玩家 在你的班级比赛中: 添加新的班级团队: 最后,在create.chtml中添加下拉列表,如下所示:
public ActionResult Match()
{
...
var match = new MVCApp.Models.Match
{
AdversaryTeam = "Equipe de France",
Field = "Stade de France",
MatchDay = DateTime.Today,
MatchTime = DateTime.Now,
TeamOne = new Team
{
Players = new List<Player>
{
new Player { PlayerID = 1, Firstname = "Zineeddine", Lastname = "Zidane", Poste = "" },
new Player { PlayerID = 2, Firstname = "Roberto", Lastname = "Carlos", Poste = "" },
new Player { PlayerID = 3, Firstname = "Gianluca", Lastname = "Pagliuca", Poste = "" },
}
},
TeamTwo = new Team
{
Players = new List<Player>
{
new Player { PlayerID = 1, Firstname = "Zineeddine", Lastname = "Zidane", Poste = "" },
new Player { PlayerID = 2, Firstname = "Roberto", Lastname = "Carlos", Poste = "" },
new Player { PlayerID = 3, Firstname = "Gianluca", Lastname = "Pagliuca", Poste = "" },
}
}
};
var vm = new MatchPlayersVM
{
Match = match,
TeamOnePlayers = match.TeamOne.Players.Select(p => new SelectListItem { Text = p.Firstname, Value = p.PlayerID.ToString() }),
TeamTwoPlayers = match.TeamTwo.Players.Select(p => new SelectListItem { Text = p.Firstname, Value = p.PlayerID.ToString() }),
};
ViewBag.MatchVM = vm;
return View();
}
@using MVCApp.Models
@model MatchPlayersVM
@Html.DropDownListFor(m => m.TeamOneSelectedValues, ViewBag.MatchVM.TeamOnePlayers as IEnumerable<SelectListItem>, new { multiple = "multiple" })
@Html.DropDownListFor(m => m.TeamTwoSelectedValues, ViewBag.MatchVM.TeamOnePlayers as IEnumerable<SelectListItem>, new { multiple = "multiple" })
如果我明白了,我有我的模型:Jouer,Match,组队,在viewmodel MatchPlayerVM中多一个?但是Team和MatchPlayerVM是等价的不?不,Team是一个保存玩家和其他信息集合的模型。MathPlayerVM是一个以其他格式表示数据的ViewModel,如果您对其进行比较,您的模型将包含一个原始数据您的玩家列表和您的ViewModel包含一个经过转换的玩家列表。您可能有100个具有多个导航的属性以及使用VM it提高性能的好处,以避免序列化问题并转换数据。你也有一个模型,但你可以有它的多个表示。如果我理解,我有我的模型:Jouer,Match,Team,在viewmodel MatchPlayerVM中还有一个?但是Team和MatchPlayerVM是等价的不?不,Team是一个保存玩家和其他信息集合的模型。MathPlayerVM是一个以其他格式表示数据的ViewModel,如果您对其进行比较,您的模型将包含一个原始数据您的玩家列表和您的ViewModel包含一个经过转换的玩家列表。您可能有100个具有多个导航的属性以及使用VM it提高性能的好处,以避免序列化问题并转换数据。您也有一个模型,但可以有它的多个表示形式。