درود
من برای هم پست و هم دیدگاه های پست سیستم لایک بصورت رو ایجکسی پیاده کردم،نکته اینجاست که برای خود پست بدرستی کار میکنه اما برای دیدگاه ها وقتی بعنوان کاربر لایک یا دیسلایک رو میزنم تو دیتابیس تغییر انجام میشه اما برای کاربر بصورت آنی نشون داده نمیشه و باید یکبار صفحه رو رفرش کنم تا تغییر نشون داده بشه!
اینم کدهای اکشن،ویو اصلی و پارشال ویو نمایش لایک
اکشن:

[Route("likecmnt")]
public ActionResult _LikeComment(int id, int i = 0)
{
if (i == 1)
{


SiteContext db = new SiteContext();
Comment cmnt = db.Comments.Find(id);
if (!User_Validate_cmnt(id))
{
ViewBag.lk = cmnt.LikeCmnt;
return MessageBox.Show("شما قبلا رای دادید", MessageType.Alert, true);
}
else
{
cmnt.LikeCmnt++;
TempData["addlk"] = cmnt.LikeCmnt;
db.SaveChanges();
return PartialView(TempData["addlk"]);
}
}
else
{
return PartialView();
}
}

پارشال ویو لایک





@if (TempData["addlk"]!=null)
{
@TempData["addlk"]
}
else
{
@TempData["lk"]
}




ویو لایک

foreach (var item in Model.comments)
{
<div class="box-cmnts">
<div class="row">
<div class="col col-md-6">
<div class="like-cmnt">
<a href="@Url.Action("_LikeComment", new { @id=item.ID,i=1})" data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#dv-likecmnt(@item.ID)"><i class="fa fa-thumbs-o-up"></i></a>
<div style="display:inline-block" id="dv-likecmnt(@item.ID)">
@Html.Partial("_LikeComment",TempData["lk"]=item.LikeCmnt)
</div>


اینو بگم اول خیلی ساده پیاده سازی کرده بودم،یعنی وقتی برای بار نخست صفحه لود میشه مقدار لایک توسط خود مدل صفحه از دیتابیس بارگزاری میشد و هربار که اکشن لایک فراخونی میشه این مقدار جایگزین میشد با مقدار ویوبک پارشال ویو! ولی اونم همین ایراد رو داشت .گمون کردم مشکل از ویوبک هستش که از تمپ دیتا استفاده کردم اما مشکل رفرش نشدن آنی برطرف نشده هنوز