【发布时间】:2014-05-16 21:26:04
【问题描述】:
我正在做一个 MVC 应用程序。这是在我的 _Layout.cshtml
我需要将它移动到一个 js 文件中
<script type="text/javascript">
window.SessionTimeout = (function() {
var _timeLeft, _popupTimer, _countDownTimer;
var stopTimers = function() {
window.clearTimeout(_popupTimer);
window.clearTimeout(_countDownTimer);
};
var updateCountDown = function() {
var min = Math.floor(_timeLeft / 60);
var sec = _timeLeft % 60;
if(sec < 10)
sec = "0" + sec;
document.getElementById("CountDownHolder").innerHTML = min + ":" + sec;
if(_timeLeft > 0) {
_timeLeft--;
_countDownTimer = window.setTimeout(updateCountDown, 1000);
} else {
document.location = "Home/TimeOutPage";
}
};
var showPopup = function() {
_timeLeft = 60;
updateCountDown();
ClientTimeoutPopup.Show();
};
var schedulePopup = function() {
stopTimers();
_popupTimer = window.setTimeout(showPopup, @PopupShowDelay);
};
var sendKeepAlive = function() {
stopTimers();
ClientTimeoutPopup.Hide();
SessionTimeout.schedulePopup();
};
return {
schedulePopup: schedulePopup,
sendKeepAlive: sendKeepAlive
};
})();
我尝试只复制脚本标签之间的代码,但它不起作用。我知道问题出在函数签名上
window.SessionTimeout = (function() { ...
但我不知道如何在 js 文件中使用 window.SessionTimeout。
@PopupShowDelay 在我看来是这样定义的:
@functions {
public int PopupShowDelay
{
get { return 60000 * (Session.Timeout - 1); }
}
}
更新
好的,我发现了错误。 问题是变量
@PopupShowDelay
我在 view 中定义了它,并试图读取 .js 文件。
所以,我要检查一下: Passing parameters to JavaScript files
谢谢!!
【问题讨论】:
-
您可以照原样复制它。为什么你认为它不起作用?
-
是的,我就是这么想的。但我不工作。不知道为什么
标签: javascript asp.net-mvc view