コントローラーで次のクエリを作成したところ、問題が発生しました。
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__AnonymousType6
2[portfolio.Models.Project,System.Collections.Generic.IEnumerable1[portfolio.Models.ProjectTag]]]', but this dictionary requires a model item of type 'System.Collections.Generic.IEnumerable
1[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 (まだ画像を投稿できません)
お時間を割いていただきありがとうございます。英語は私の母国語ではありません。