我阅读了一些关于创建包含多个存储库的视图的问题,但我似乎无法获得正确的组合以使其工作。
我连接到SQL数据库中三个不同表的3个存储库。我有每个正确显示信息的控制器和视图模型。我似乎无法获得部分观点。当我创建一个视图而不是尝试在视图中使用partialview时,我收到模型不包含存储库的错误。我想知道我是否只需要一个包含3个存储库类的文件。
我有: DomainPlayerRepository.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Domain.Games;
namespace Domain.Abstract
{
public interface DomainPlayerRepository
{
IQueryable<Player> Player { get; }
}
}
DomainGameRepository.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Domain.Games;
namespace Domain.Abstract
{
public interface DomainGameRepository
{
IQueryable<Game> Game { get; }
}
}
GamePartialView.cshtml
@model Domain.Games.Game
<div class="Game">
@Model.Date @Model.NumPlayers @Model.PotMoney
</div>
List.cshtml(适用于播放器)
@model IEnumerable<Domain.Games.Player>
@{
ViewBag.Title = "Players";
}
<h2>Player</h2>
@foreach (var p in Model)
{
<div class ="player">
<h3>@p.FName @p.LName Handicap @p.Handicap.ToString()</h3>
</div>
}
@foreach (var p in Model)
{
<div class ="game">
@Html.Partial("GamePartialView", p)
</div>
}
我一直在尝试使用我的存储库获取一个viewmodel,但这还没有用。
MultiRepositoryViewModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Domain.Games;
namespace WebUI.Models
{
public class MultiRepositoryViewModel
{
public IEnumerable<Player> Player { get; set; }
public IEnumerable<Game> Game { get; set; }
}
}
答案 0 :(得分:0)
将视图模型更改为ViewModel并使用您定义的属性
@model WebUI.Models.MultiRepositoryViewModel
@{
ViewBag.Title = "Players";
}
<h2>Player</h2>
@foreach (var p in Model.Player)
{
<div class ="player">
<h3>@p.FName @p.LName Handicap @p.Handicap.ToString()</h3>
</div>
}
@foreach (var p in Model.Game)
{
<div class ="game">
@Html.Partial("GamePartialView", p)
</div>
}