仅在用户登录时显示一次弹出窗口

Show popups only once when user logged in

本文关键字:一次 窗口 用户 登录 显示      更新时间:2023-09-26

我正在使用 mvc4。在我的布局页面中,我有一个弹出窗口,仅在用户登录时显示。

  @if (User.Identity.IsAuthenticated)
    { 
      <div class="pop-suggest popup_window">            
         <div class="invite-add">    
           <a id="popupBoxCloseAd" class="close-popup">X</a>        
           <h4 class="invite-tit">"Earn more points, Get more products!!!"</h4>
           <div> Invite Friends</div>
        </div>            
    </div>
    }

对于关闭这个弹出窗口,我使用以下jquery,

 $('.close-popup').click(function () {
    close_popup();
 });
 function close_popup() {      
    $('.popup_window').fadeOut(500);       
  }

我的问题是,登录后,每次页面刷新都会出现此弹出窗口。我如何更改此代码以弹出此div仅在用户登录时显示,关闭后它不会出现。

在我的观点中,您可以在用户使用某种标志登录时创建cookie,并在注销时销毁cookie。我在我的应用程序中做了类似的事情,效果很好。

您可以使用 ViewData:

    ActionResult Register(RegisterViewModel vmodel) 
    {  
 if (GetAuthenticationResult(vmodel.UserName, vmodel.Password))
        {
            ViewData["AuthPassed"] = true;
            //.... other code   
        } 
     //... other code 
    }

然后使您的视图数据在布局中检查非空相等性。

只需在会话中添加一个标志:

@{       
   if (Session["isAlreadyDisplayed"] == null) {
      ... your code ...
   }
   else {
      Session["isAlreadyDisplayed"] = true;
   }    
}

并且不要忘记在每次用户登录时删除会话变量。

 Session.Remove("isAlreadyDisplayed");