查看完整版本: 多頁面存取同Session問題
頁: [1]

ggnnyy 發表於 2016-5-21 03:49 PM

多頁面存取同Session問題

本帖最後由 ggnnyy 於 2016-5-21 03:57 PM 編輯

各位大大好:
如下面程式,如果將每次部分檢視用ajax執行時,session的值就加1,
在下面情況如果同一個瀏覽器開N個此頁面,那每次顯示的session的值就會加N,
像此類型況,我有辦法限制這個頁面不能重複開啟,
或者是其他什麼方法讓開多個同頁面時顯示的session還是累加1而已嗎?
Controller:
         public ActionResult Index()
        {            
            Session["aaa"] = 1;         
            return View();
        }

        public ActionResult PartialIndex()
        {
            Session["aaa"] = int.Parse(Session["aaa"].ToString()) + 1;
            ViewBag.ii = Session["aaa"];
            return PartialView();
        }
View:
<div id="adiv">
    @Html.Action("PartialIndex", "Home")
</div>...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

Semisphere 發表於 2017-1-30 01:51 PM

可以由前端產生類似GUID的隨機不重複字串,並傳到後端塞入session的指定key中,由session判斷該key是否有多value。

再來若是要統計(只累加1)的需求,就只要判斷session該key是否有東西,有就得1,無就0;若是要限定前端只能允許單開,後端傳資料前先判斷session該key是否有東西,有則吐禁止多開訊息或空資料,若無則吐對應訊息或資料即可。
頁: [1]