我已经检查过一个解决方案,但我似乎没有得到任何指向asp.net mvc。基本上我正在寻找一个解决方案,在会话到期前一分钟通知用户。
理想的解决方案是倒计时通知,可以选择续订会话。
如果倒数计时器到期而用户没有刷新页面,我需要将其记录下来。
答案 0 :(得分:4)
这样的事情:
public class YourController : Controller {
public ActionResult TheAction() {
ViewData["SessionTimeout"] = Request.Session.Timout;
ViewData["SessionWillExpireOn"] = DateTime.Now.AddMinutes(Request.Session.Timeout);
return View(info);
}
}
和此:
<span>Your session will expire: <%= ViewData["SessionWillExpireOn"].ToString() %></span>
<span id="countDown" style="display:none></span>
<script type="text/javascript">
var sessionTimout = <%= ViewData["SessionTimeout"].ToString(); %>;
var approximateStart = new Date();
var notifyAfter = new Date(approximateStart + (sessionTimout - 1)*60*1000);
function startCountDown() {
setTimout(function() {
var now = new Date();
document.getElementById('countDown').style.display = 'inline';
document.getElementById('countDown').innerHTML = "Countdown: " + now.getMinutes();
if (now >= notifyAfter)
alert('About to expire...');
}, 5000);
}
document.onload=startCountDown;
</script>
在记事本中写了视图,请检查语法。我也不记得JS中的DateTime内容。
无论如何你应该看到这个主意。