これは非常に基本的な問題のようですが、何が間違っているのかわかりません。「FavId」、UserId、および PostId を含む「FavouritePost」のリストがあります。このクラスは、ユーザーが「お気に入り」リストに投稿を追加したかどうかを判断するために使用されます。私のコントローラーでは、現在の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、3 つの投稿 (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"
3 回繰り返し、1 つの画像ではなく 3 つの画像を投稿に割り当てているようです。リスト内の UserId の数が原因であることに気付きましたが、条件ステートメントが代替画像の表示を停止すると思いました。冗長な質問で申し訳ありませんが、私のジレンマを理解するのが簡単になると思っただけです。どんな助けでも素晴らしいでしょう。