مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mrpeach

عضویت از 1394/04/13

ajax

  • جمعه 11 دی 1394
  • 14:09
تشکر میکنم

سلام به همه شما عزیزان من دو تا سوال دارم 

من یک وب سایت دارم که به content شما به وسیله ajax میتونید like یا dislike  بدید

سوال اول من اینه که وقتی کلید like فشرده میشه کل صفحه به صورت ajax دوباره load  میشه

$('.like').click(function () {
            var text = $(this).attr("id");
            $.ajax({
                url: '/Home/Likes/' + text,
                contentType: 'application/html; charset=utf-8',
                type: 'GET',
                dataType: 'html'

            })
            .success(function (result) {
                $('#wrap').html(result);
            })
            .error(function (xhr, status) {
                alert("شما قبلا به این پست رای داده اید!!!");
            })
        });

و صفحه جابجا میشه و به اول صفحه برمیگرده چه طور می تونم بگم فقط خود دکمه دوباره load بشه

<article class="question question-type-normal">
                        <h2 style="word-wrap:break-word;">
                            <a href="~/Content/Question/@item.ID" class="font16 text-blue" maxlength="10">@item.Question</a>
                            <a class="button small green-button pull-left qb" href="~/Content/Cquestion/@item.ID">مشاهده پاسخ</a>
                        </h2>
                        <div class="question-inner">
                            <div class="clearfix"></div>
                            <p class="question-desc font14">@Html.Raw(item.Answer)</p>
                            <div class="statictis">
                                <span class="question-date"><i class="icon-calendar"></i>  @string.Format("{0:MMM/dd}", item.CreateDate)</span>
                                <a href="~/Content/Cquestion/@item.BankCategory.Category_ID"><span class="question-date"><i class="icon-file-alt"></i>  @item.BankCategory.Title</span></a>
                                <span class="question-date"><i class="icon-user"></i>  @item.AnswerBy</span>
                                <span class="question-date"><i class="icon-bar-chart"></i>  @item.Hit مشاهده شده</span>
                                <span class="text-red pull-left dislike">@item.Dislike</span><img id="@item.ID" src="~/Images/bg/dislike.png" alt="Dislike" class="pull-left dislike" />
                                <span class="text-green pull-left like">@item.Like</span><img id="@item.ID" src="~/Images/bg/like.png" alt="Like" class="pull-left like" />
                            </div>
                        </div>
                    </article>

و سوال دوم من اینه که چون کاربر در صفحه های داخلی هم میتونه like کنه چه طور آخر controller دوباره به صفحه ای که کاربر بوده redirect کنم؟

 

با تشکر

 

public ActionResult Likes(string id)
        {
            string IP;
            if (Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)
            {
                IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
            }
            else
            {
                IP = Request.ServerVariables["REMOTE_ADDR"];
            }
            Like like = db.Like.Where(p => p.Content.Equals(new Guid(id)) && p.IP.Equals(IP)).FirstOrDefault();

            if(like == null)
            {
                Like addlike = new Like();
                addlike.ID = Guid.NewGuid();
                addlike.IP = IP;
                addlike.Content = new Guid(id);
                db.Like.Add(addlike);
                //db.SaveChanges();
                Bank bank = db.Bank.Find(new Guid(id));
                bank.Like += 1;
                db.SaveChanges();
            }     
            return RedirectToAction("Index", "Home");
        }

 

پاسخ های این پرسش

تعداد پاسخ ها : 2 پاسخ
کاربر سایت

اصغر

عضویت از 1394/03/16

  • جمعه 11 دی 1394
  • 19:26

سلام 

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

در مورد سوال اول (که جواب سوال دوم هم هست) شما در Action باید PartialView برگشت بدید نه عبارت redirectToAction دقیقا همون عبارت باعث میشه دوباره صفحه پست بک بخوره ، زمانی که شما خروجی از نوع PartialView داشته باشید ، صفحه ریلود نمیشه و کاربر در جای خودش باقی می مونه...

کاربر سایت

mrpeach

عضویت از 1394/04/13

  • شنبه 12 دی 1394
  • 13:19

امکانش هست که بیشتر توضیح بدید؟

این تگ article داخل چندین صفحه تکرار میشه

ممنون میشم

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)