这似乎是一个基本问题,但是,我似乎无法弄清楚我做错了什么。我有一个“FavouritePost”列表,其中包含“FavId”、UserId 和一个 PostId。此类用于确定用户是否已将帖子添加到“收藏夹”列表中。在我的控制器中,我过滤掉帖子,只选择与当前 userId 匹配的帖子。在我看来,我有以下 foreach 循环:
@foreach (var fav in Model.FavPosts)
{
if (post.PostId == fav.PostId)
{
<img src="@Url.Content("~/Content/images/favourite_img.jpg")" alt="" />
}
else if (post.PostId != fav.PostId)
{
<img src="@Url.Content("~/Content/images/Notfavourite_img.jpg")" alt="" />
}
}
我的问题是:当 foreach 循环运行时,它会根据用户是否“喜欢”该帖子,在帖子旁边显示一张图片。但是,当我运行以下代码时,它会在帖子旁边分配多个图像。例如,根据下表数据:
FavId UserId PostId
1 1 1
2 1 2
3 1 4
UserId = 1,已喜欢三个帖子 (1,2,4),但是,UserId = 1 尚未“喜欢”帖子 3
但是,当我运行我的页面时,对于第一篇文章,会显示 3 张图片。
Post 1 = "Liked Image", "Not Liked Image", "Not Liked Image"
Post 2 = "Not Liked Image", "Liked Image", "Not Liked Image"
Post 2 = "Not Liked Image", "Not Liked Image", "Liked Image"
它似乎迭代了三遍,并为帖子分配了三张图片,而不是一张图片。我意识到这是因为列表中的 UserId 数量,但是,我认为条件语句会阻止显示替代图像。为这个冗长的问题道歉,我只是认为这会让我更容易理解我的困境。任何帮助都会很棒。