-4

我是 ASP.NET MVC 的新手。我需要从三个嵌套或级联类中构建一个复合视图模型:Sport>Tournament>TournamentEvent

public class Sport
{
    public int Id { get; set; }
    public string SportName { get; set; }
    public virtual ICollection<Tournament> Tournaments { get; set; }
}

public class Tournament
{
    public int Id { get; set; }
    public string TournamentName { get; set; }
    public int SportId { get; set; }
    public virtual ICollection<TournamentEvent> TournamentEvents { get; set; }
}

public class TournamentEvent
{
    public int Id { get; set; }
    public string EventName { get; set; }
    public int TournamentId { get; set; }
}

如您所知,每项运动都包含一组锦标赛,每项锦标赛都包含一组赛事。我需要构造一个无序列表,如下所示:

    <li> Soccer
        <li>English Premier League
            <li>Chelsea v Arsenal</li>
        </li>
    </li>

我需要使用 linq 构建一个复合视图模型来传递给我的视图,但我就是想不通。请帮忙

4

3 回答 3

0

我认为这行不通,汤姆。我需要访问 Tournament 和 TournamentEvent 类,我需要将它们加载到我的对象中,这是 linq 的来源。在 SportsController 中:

public partial class SportsController : Controller
{
    private MyDb db = new MyDb();

public virtual ActionResult Index()
    {
      var menuObject = from s in db.Sports
                         select s;

      return View(menuObject);
     }
}
于 2013-03-08T06:35:34.950 回答
0

你不只需要一个包含 Sport 列表的父 vie 模型吗?

public class Sport
{
    public List<Sport> Sports { get; set; }
}

您可以使用 razor 遍历集合。

你能澄清一下你认为 linq 的作用吗?我可能弄错了棍子的一端。

于 2013-03-07T17:06:52.030 回答
0

创建一个名为 SportTournamentEventViewModel.cs 的类

使用“图书馆名称”。模型;

public class SportTournamentEventViewModel
{
    public List<Sport> Sports {get;set;}
    public List<Tournament> Tournaments {get;set;}
    public List<TournamentEvent> Events {get;set;}
}

在你的行动中

private NameOfEntities db = new NameOfEntities();

public ActionResult "ActionResultName"()
{
    db.Configuration.LazyLoading = false;

    var sportList = db.Sport.ToList();
    var tournamentList = db.Tournament.ToList();
    var eventList = db.TournamentEvents.ToList();

    var viewModel = new SportTournamentViewModel
    {
        Sports = sportList,
        Tournaments = tournamentList,
        Events = eventList,
    };

    return View(viewModel);
}
于 2013-04-12T14:10:22.980 回答