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

时间:2014-11-27 06:10:29

标签: javascript jquery html asp.net-mvc-4 popup

我正在使用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仅在用户登录时显示,并且在关闭后不会显示。

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以使用ViewData:

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

然后在Layout中检查您的ViewData是否存在非空相等。

答案 2 :(得分:0)

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

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

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

 Session.Remove("isAlreadyDisplayed");