با سلام
استاد من یه سیستم لایک برای مقالاتم پیاده سازی کردم، میخوام یه کاری کنم وقتی داره لیست مقالات که داره لود میشه، اگه کاربر لایک کرده بود دکمه لایک قرمزبمونه یا اگه قبلا لایک کرده بود و دوباره کلیک کرد دیگه دکمه قرمز نشه. کدهامو هم میزارم که راهنمایی کنید. ممنونم از لطف شما.
function Like(id) {
$.ajax({
url: '/Home/LikeArticles/' + id,
type: 'Get',
data: {}
}).done(function (result) {
$('#Like_' + id).html(result);
$('#Like_' + id + ' .like').attr('style','color: red !important');
});
}
اینم کدای کنترلر:
public ActionResult LikeArticles(int id)
{
string UserIp = Request.UserHostAddress;
var x = db.Like_tbl.FirstOrDefault(a => a.ArticleId == id && a.UserIp == UserIp);
if (x != null)
{
if (x.Like == true)
{
return PartialView("LoadPartial", db.Article_Tbl.Find(id));
}
else if (x.Like == false)
{
db.Like_tbl.FirstOrDefault(a => a.ArticleId == id && a.UserIp == UserIp).Like = true;
db.SaveChanges();
return PartialView("LoadPartial", db.Article_Tbl.Find(id));
}
else
{
return PartialView("LoadPartial", db.Article_Tbl.Find(id));
}
}
else
{
Models.Like_tbl like = new Like_tbl()
{
ArticleId = id,
UserIp = UserIp,
Like = true
};
db.Like_tbl.Add(like);
db.SaveChanges();
return PartialView("LoadPartial", db.Article_Tbl.Find(id));
}
}
باید چک کنید در view
یک if بزارید اگر از قبل لایک کرده بود عملیات مورد نظر را انجام دهید