我在视图中显示数据库中最流行的标签时遇到问题。我不确定这个问题的标题,所以如果有人有更好的标题,请重命名。
设想
我需要在我的索引页面上显示最近的帖子、最近的画廊和最受欢迎的标签。我决定为此使用元组,它工作得很好,直到我尝试显示最流行的标签。
错误
传入字典的模型项的类型为“System.Tuple
3[photoBlog.Models.Gallery[],photoBlog.Models.Post[],System.Linq.IGrouping
2[System.Int32,photoBlog.Models.PostTag][]]”,但此字典需要类型为“System.Tuple`3[photoBlog.Models”的模型项.Gallery[],photoBlog.Models.Post[],photoBlog.Models.PostTag[]]'。
如您所见,它给了我错误的对象类型。我希望它是一个数组,但它给了我一些System.Linq.Grouping
东西。
代码
如您所见,我将其转换为控制器中的数组。
public ActionResult Index()
{
photoBlogModelDataContext _db = new photoBlogModelDataContext();
var posts = _db.Posts.OrderByDescending(x => x.DateTime).Take(4).ToArray();
var galleries = _db.Galleries.OrderByDescending(x => x.ID).Take(4).ToArray();
var posttags = _db.PostTags.GroupBy(x => x.TagID).OrderBy(x => x.Count()).Take(4).ToArray();
return View(Tuple.Create(galleries, posts, posttags));
}
我的观点是直截了当的,请注意,在我尝试添加最流行的标签之前,这确实有效。
@model Tuple<photoBlog.Models.Gallery[], photoBlog.Models.Post[], photoBlog.Models.PostTag[]>
@foreach (var tag in Model.Item3)
{
@tag.Tag.Name
}