【发布时间】:2013-11-14 08:07:03
【问题描述】:
我遇到了一个问题,我在控制器中进行了以下查询:
var query = from pmt in db.ProjectHasTags
join project in db.Projects on pmt.ProjectId equals project.ID
join tag in db.ProjectTags
on pmt.TagId equals tag.ID
group pmt by pmt.Project into pmtGroup
select new
{
Project = pmtGroup.Key,
Tags = pmtGroup.Select(project => project.ProjectTag)
};
我想将此查询返回到视图,使用:
return View(query.ToList());
在视图文件中我有以下代码:
@model IEnumerable<portfolio.Models.ProjectHasTag>
@foreach (var p in Model)
{
@p.Project.Title
foreach (var tag in p.Tags)
{
@tag.title
}
}
我收到以下错误:
传入字典的模型项的类型为 'System.Collections.Generic.List
1[<>f__AnonymousType62[portfolio.Models.Project,System.Collections.Generic.IEnumerable1[portfolio.Models.ProjectTag]]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable1[portfolio.Models.ProjectHasTag] '。
ProjectHasTag 模型代码:
public class ProjectHasTag
{
public int ID { get; set; }
public int? ProjectId { get; set; }
[ForeignKey("ProjectId")]
[DisplayName("Project")]
public virtual Project Project { get; set; }
public int? TagId { get; set; }
[ForeignKey("TagId")]
[DisplayName("Tag")]
public virtual ProjectTag ProjectTag { get; set; }
public virtual ICollection<ProjectTag> Tags { get; set; }
}
这就是我想要实现的目标: http://i.stack.imgur.com/DAZ5n.png(我还不能发图)
感谢您抽出宝贵时间,英语不是我的第一语言。
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: c# asp.net asp.net-mvc linq asp.net-mvc-4