【发布时间】:2014-09-03 05:12:08
【问题描述】:
我正在开发一个在 VS2013 中使用 MVC4 和 EF Data First 的项目。尝试将对象传递给视图时出现此错误。
传入字典的模型项的类型为'System.Data.Entity.Infrastructure.DbQuery
1[<>f__AnonymousType34[System.String,System.Nullable1[System.Int32],System.Nullable1[System.Int32],System.Nullable@987654323 @1[TitansMVCWithBootStrap.Models.Player_Game_Stats]'
我不知道如何解决这个问题,任何建议都会有所帮助。谢谢
控制器
public class PlayerGameStatsController : Controller
{
private Context db = new Context();
// GET: PlayerGameStats/Details/5
public ActionResult Details(int gid=19, int sid = 11)
{
var playerGameStats = from pgs in db.PlayerGameStats
join p in db.Players on pgs.Player_id equals p.id_player
where pgs.SeasonId == 11 && pgs.GameNumber == 19
select new
{
p.PlayerName,
pgs.PlateAppearance,
pgs.Runs,
pgs.Hits
};
return View(playerGameStats);
}
型号
public class Player_Game_Stats
{
[Key]
[Column(Order = 0)]
public int Player_id { get; set; }
[Key]
[Column(Order = 1)]
public int GameNumber { get; set; }
public Nullable<int> PlateAppearance { get; set; }
public Nullable<int> Runs { get; set; }
public Nullable<int> HR { get; set; }
public int Hits{ get; set; }
//[ForeignKey("id_player")]
//public virtual Players Player { get; set; }
}
}
查看
@model IEnumerable<TitansMVCWithBootStrap.Models.Player_Game_Stats>
@{
ViewBag.Title = "Details";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Details</h2>
<table class="table table-striped">
<tr>
<th>
@Html.DisplayNameFor(model => model.PlayerName)
</th>
<th>
@Html.DisplayNameFor(model => model.PlateAppearance)
</th>
<th>
@Html.DisplayNameFor(model => model.Runs)
</th>
<th>
@Html.DisplayNameFor(model => model.Hits)
</th>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PlayerName)
</td>
<td>
@Html.DisplayFor(modelItem => item.PlateAppearance)
</td>
<td>
@Html.DisplayFor(modelItem => item.Runs)
</td>
<td>
@Html.DisplayFor(modelItem => item.Hits)
</td>
</tr>
}
</table>
也试过了
var playerGameStats = (from pgs in db.PlayerGameStats
join p in db.Players on pgs.Player_id equals p.id_player
where pgs.SeasonId == 11 && pgs.GameNumber == 19
select new Player_Game_Stats
{
p.PlayerName,
pgs.PlateAppearance,
pgs.Runs,
pgs.Hits
}).ToList();
return View(playerGameStats);
【问题讨论】:
标签: c# asp.net-mvc entity-framework asp.net-mvc-4