نمایش نتایج 1 تا 7 از 7

نام تاپیک: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

  1. #1

    Question چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

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

    [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>


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

  2.  

  3. #2

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    شما باید با جاوا اسکریپت تعداد لایک و دیسلایک رو کم و زیاد کنید.

  4. #3

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    شما باید با جاوا اسکریپت تعداد لایک و دیسلایک رو کم و زیاد کنید.
    آخه من از همین روش واسه لایک خود پست استفاده کردم و داره کار میکنه و فقط مشکلم فقط تو همین آنی رفرش نشدنه مربوط به دیدگاه هاست.هرکاری کردم نفهمیدم مشکلش چیه؟
    من تو این روش تعیین کردم کاربری با یک آی.پی مشخص فقط یکبار بتونه یک پست یا دیدگاه پست رو لایک-دیسلایک کنه.
    با جاوا اسکریپت میشه چنین چیزی رو پیاده سازی کرد؟
    میبشه یه مثال عملی برام اینجا نشون بدید؟

  5. #4

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    من این تغییرات رو ایجاد کردم و خواستم به گفته شما با جاوااسکریپپ انجام بدم
    کنترلر

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



    <button style="background-color:transparent;border:none;display:inline-block" name="@item.ID" class="lk-cmnt"><i class="fa fa-thumbs-o-up"></i></button>
    <div style="display:inline-block" id="dv-likecmnt(@item.ID)">
    @item.LikeCmnt
    </div>



    $('.lk-cmnt').on({
    'click': function () {
    var id = $(this).attr('name');
    jQuery.ajax({
    url: "/_LikeComment",
    type: "GET",
    data: id,
    success: function (result) {
    var div = '#dv-likecmnt(' + id + ')';
    $(div).empty();
    $(div).append(msg);
    }
    });
    }
    });

    اما هیچ اتفاقی نمی افته و تو قسمت کنسول مروگر خطای
    jquery-3.3.1.min.js:2 GET http://localhost:51868/_LikeComment?2 500 (Internal Server Error)
    رو میده!یکی کمک کنه لطفا

  6. #5

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    سلام یه سوال دارم Json شما تو کنترلر نباید JsonRequestBehavior داشته باشه؟ (پارامتر دوم return)

    نقل قول نوشته شده توسط پروگرامنویس مشاهده تاپیک
    من این تغییرات رو ایجاد کردم و خواستم به گفته شما با جاوااسکریپپ انجام بدم
    کنترلر

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



    <button style="background-color:transparent;border:none;display:inline-block" name="@item.ID" class="lk-cmnt"><i class="fa fa-thumbs-o-up"></i></button>
    <div style="display:inline-block" id="dv-likecmnt(@item.ID)">
    @item.LikeCmnt
    </div>



    $('.lk-cmnt').on({
    'click': function () {
    var id = $(this).attr('name');
    jQuery.ajax({
    url: "/_LikeComment",
    type: "GET",
    data: id,
    success: function (result) {
    var div = '#dv-likecmnt(' + id + ')';
    $(div).empty();
    $(div).append(msg);
    }
    });
    }
    });

    اما هیچ اتفاقی نمی افته و تو قسمت کنسول مروگر خطای
    jquery-3.3.1.min.js:2 GET http://localhost:51868/_LikeComment?2 500 (Internal Server Error)
    رو میده!یکی کمک کنه لطفا

  7. #6

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    نقل قول نوشته شده توسط Anoosh100 مشاهده تاپیک
    سلام یه سوال دارم Json شما تو کنترلر نباید JsonRequestBehavior داشته باشه؟ (پارامتر دوم return)
    سلام، آره باید باشه حواسم نبود جا انداخته بودم! ولی با گذاشتن پارامتر دوم هم مشکل برطرف نشد

  8. #7

    نقل قول: چرا مقدار لایک دیدگاه بصورت آنی و ایجکسی بروز نمیشه؟

    بلاخره بعد از کلی کلنجار رفتن و بدبختی ایراد کار رو فهمیدم و درستش کردم!
    ایراد از آی.دی دیوهایی بود که قرار بود بعد از تغییر مقدار بروز بشن ! چون شمار دیوها زیاد بود من از یک پسوند با مقدار آی.دی دیدگاه ها برای اینکار استفاده کرده بودم ولی انگار مقدار data-ajax-update تگ a با آی.دی ویو مورد نظر بدلایلی یکی نمیشد و... خلاصه کد رو ببشکل زیر تغییر دادم و مشکلم حل شد.خدایی کلافه شده بودم ولی الان حالم جا اومد!


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


    [Route("dislikecmnt")]
    public ActionResult _DisLikeComment(int id)
    {
    SiteContext db = new SiteContext();
    Comment cmnt = db.Comments.Find(id);
    if (!User_Validate_cmnt(id))
    {
    ViewBag.dslikecmnt = cmnt.DisLikeCmnt;
    return MessageBox.Show("شما قبلا رای داده اید!", MessageType.Alert, true);
    }
    else
    {
    cmnt.DisLikeCmnt++;
    ViewBag.dslikecmnt = cmnt.DisLikeCmnt;
    db.SaveChanges();
    return PartialView();
    }
    }



    <div class="like-cmnt">
    @{string lk = "lk"+item.ID.ToString();
    }
    <a href="@Url.Action("_LikeComment", new { @id = item.ID })" data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#@lk"><i class="fa fa-thumbs-o-up"></i></a>
    <div style="display:inline-block" id="@lk">
    @item.LikeCmnt
    </div>
    @{string dk = "dk" + item.ID.ToString();
    }
    <a href="@Url.Action("_DisLikeComment", new { @id = item.ID })" data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#@dk"><i class="fa fa-thumbs-o-down"></i></a>
    <div style="display:inline-block" id="@dk">@item.DisLikeCmnt</div>
    </div>

تاپیک های مشابه

  1. سوال: چرا مقدار textBox و یا Label حروف نامفهوم نمایش داده می شود.
    نوشته شده توسط asp2.net در بخش ASP.NET Web Forms
    پاسخ: 11
    آخرین پست: سه شنبه 18 تیر 1387, 18:04 عصر
  2. ]چرا مقدار اولیه نمیگیره
    نوشته شده توسط bebakhshid در بخش C#‎‎
    پاسخ: 1
    آخرین پست: شنبه 04 اسفند 1386, 15:55 عصر
  3. چرا مقدار یک متغیر استاتیک از بین می ره؟
    نوشته شده توسط elham.net در بخش C#‎‎
    پاسخ: 5
    آخرین پست: دوشنبه 11 دی 1385, 11:20 صبح
  4. چرا مقدار این متغییر null است
    نوشته شده توسط bebakhshid در بخش VB.NET
    پاسخ: 4
    آخرین پست: چهارشنبه 26 مرداد 1384, 20:04 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •