我有以下加入查询,但我不知道在视图中的访问
var SearchPost = (from p in db.Posters
where p.CityID == CityID
join a in db.Assessments
on p.PosterID equals a.PosterID into search
select new { p, like = search.Where((a => a.PosterID == p.PosterID)).Count() }).ToList();
答案 0 :(得分:0)
您需要在Action方法中返回SearchPost
结果(即return View(SearchPost);
)。然后在.cshtml文件中,您将声明@model MyNameSpace.Models.Poster
其中MyNameSpace
是您的命名空间的名称,而Poster是您Models
文件夹中的模型类。 (你显然需要改变@model MyNameSpace.Models.Poster
)。
然后,您可以使用Poster
(例如@Model
或@Model.PosterID
或其他)访问剃须刀视图页面中的@Model.Assessment.PosterID
模型。
答案 1 :(得分:0)
SearchPost
是匿名对象,因此您必须将SearchPost
对象映射到另一个模型。创建新模型:
public class PostSearchResult
{
public Poster Poster { get; set; }
public int LikeCount { get; set;}
}
然后:
var searchPost = (from p in db.Posters
where p.CityID == CityID
join a in db.Assessments
on p.PosterID equals a.PosterID into search
select new { p, like = search.Where((a => a.PosterID == p.PosterID)).Count() }
)
.ToList();
var searchResult = searchPost
.Select(s => new PostSearchResult { Poster = s.p, LikeCount = s.like})
.ToList();
然后将searchResult
返回View