0

質問がそれほど具体的ではないことは理解していますが、説明します。私は、人々が自分にとって何が重要かについて特定の質問に投票できる Web サイトに取り組んでおり、考えを書いた後にコメントすることもできます。問題は、人々は他の人が付けたコメントを好きになることができるということです。私は Facebook を好きになることについて話しているのではありません。人々はサイトを使用するためにサインアップする必要があるため、好きになるためのボタンと機能を作成しました。しかし、一度コメントを気に入ると、二度と気に入ることはありません。もう一度いいねを押すと、メッセージボックスが表示され、すでにこれが気に入ったことを示します。ここでの問題は、一度気に入ると、メッセージボックスが表示されたときにサイトの URL が変更され、他のものを気に入ろうとしたり、投票しようとしたりすると、「あなたはすでにこれが好きです!」というメッセージボックスが表示されることです。

前の URL: http://www.somesite.com/home/boduvanje?opstina_id=35 後の URL: http://www.somesite.com/home/boduvanje?opstina_id=35&odgovor_id=28

長い説明については申し訳ありませんが、より多くの言葉が役立つと思いました。

like関数は次のとおりです。

    public ActionResult boduvanje(int opstina_id, int odgovor_id)
    {
        Session["id_momentalno"] = opstina_id;
        var ops = Convert.ToInt32(Session["id_momentalno"]);
        var log = Convert.ToInt32(Session["logiran"]);
        ViewData["log"] = log;


        if (log == 1 )
        {
            int users_id = mor.FindUser_IdByUserName(Session["userName"].ToString());
            if (mor.FindRezultatIdByUserId(users_id) & mor.FindRezultatIdByOdgovorId(odgovor_id))
            {
                Response.Write("<html><div id='msg1' onclick='message();'><div class='response' id='response_msg'>Веќе сте лајкнале! Немате право повторно !</div></div></html>");
                var lista = mor.FindAllData(opstina_id).ToList();
                return View("About", lista);


            }
            else
            {
                rezultati rez = new rezultati();
                rez.opstina_id = opstina_id;
                rez.odgovor_id = odgovor_id;
                int id = mor.FindUser_IdByUserName(Session["userName"].ToString());
                rez.user_id = id;
                mor.AddRezultati(rez);
                mor.Save();
                var lista = mor.FindAllData(opstina_id).ToList();
                return View("About", lista);
            }
        }
        else
        {

            Response.Write("<html><div id='msg1' onclick='message();'><div class='response' id='response_msg'>Не сте логирани !</div></div></html>");
            var lista = mor.FindAllData(opstina_id).ToList();
            return RedirectToAction("LogOn", "Account");

        }

    }

ボタンがあるaspファイルのコードは次のとおりです。

    <div class="like_button" id= "like_button" ><a href="/home/boduvanje?opstina_id=<%:Session["opstina_id"]%>&odgovor_id=<%: tcm.odgovor_id %>"><img src="/images/btn_dopaga.png" alt="like" /></a></div>

事前に感謝し、さらに情報や何か他のものを投稿する必要があるかどうか教えてください:)

4

1 に答える 1

0

このロジックを実装するには、データベース内の replayId とともに like ステータスを更新する必要があります。ボタンをクリックすると、ステータスなどの Web サービスを呼び出すことができます。次に、JavaScriptでメッセージを与えることができます。Web サービスを使用しても、パフォーマンスには影響しません。すべての回答と質問のすべての同様のステータスを追跡できます。

セッションでステータスを保持することはお勧めできません。

于 2013-03-14T11:55:59.573 に答える