仅在用户登录时显示一次弹出窗口
Show popups only once when user logged in
我正在使用 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");
相关文章:
- 只有当选项卡/窗口有焦点时,页面才能每5秒刷新一次
- 每个用户只显示一次放大弹出窗口
- 如何使用jQuery一次关闭多个弹出窗口
- 窗口退出时的模式弹出窗口 - 重置一次
- 每个用户仅显示一次弹出窗口
- 弹出窗口不会根据需要在每个会话中显示一次(如客户端所述)
- jQuery Slider在jQuery弹出窗口中只初始化一次
- ASP.NET:每5分钟从代码后面调用一次弹出窗口
- Bootstrap弹出窗口只出现一次
- 我想在窗口加载后只调用一次JavaScript setInterval函数
- JavaScript - 弹出窗口仅打开一次
- 让窗口在一次单击触发两个页面重定向后保持焦点
- 简单模式弹出窗口显示每个会话一次
- PHP 正在鼠标移动到窗口上执行 JavaScript.它循环在一个函数上.我怎样才能让它只执行一次
- 仅在用户登录时显示一次弹出窗口
- 编辑我的脚本并添加一个jQuery cookie以仅显示一次弹出窗口
- 窗口大小调整仅有效一次
- jQuery一次触发所有模态窗口,即使具有不同的目标 #id
- 如何使模式窗口只显示一次
- Google Chrome扩展:只创建一次窗口