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