如何使用jquery从web.config读取或获取会话超时,以便在mvc中处理会话过期

如何使用jquery从web.config读取或获取会话超时,以便在mvc中处理会话过期,jquery,asp.net-mvc,c#-4.0,Jquery,Asp.net Mvc,C# 4.0,如何通过ajax调用从webconfig获取会话值 我尝试了以下代码 <script language="javascript" type="text/javascript"> var sessionTimeoutWarning = "<%= System.Configuration.ConfigurationSettings.AppSettings ["SessionWarning"].ToString()%>"; var

如何通过ajax调用从webconfig获取会话值

我尝试了以下代码

<script language="javascript" type="text/javascript">
       var sessionTimeoutWarning = 
    "<%= System.Configuration.ConfigurationSettings.AppSettings
    ["SessionWarning"].ToString()%>";
        var sessionTimeout = "<%= Session.Timeout %>";

        var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;
        setTimeout('SessionWarning()', sTimeout);

        function SessionWarning() {
var message = "Your session will expire in another " + 
    (parseInt(sessionTimeout) - parseInt(sessionTimeoutWarning)) + 
    " mins! Please Save the data before the session expires";
alert(message);
        }
</script>

变量SessionTimeOverWarning=
"";
var sessionTimeout=“”;
var sTimeout=parseInt(sessionTimeoutWarning)*60*1000;
setTimeout('SessionWarning()',sTimeout);
函数SessionWarning(){
var message=“您的会话将在另一个”+
(parseInt(sessionTimeout)-parseInt(sessionTimeout))+
“分钟!请在会话到期前保存数据”;
警报(信息);
}

步骤1:在控制器中创建ActionMethod/函数

public string IsUserLoggedIn()
        {
            if (Session["UserId"] != null) // check session here
                return "true";
            else
                return "false";
        }
步骤2:创建ajax调用。如果返回true,则用户已登录,否则不登录

function IsUserLoggedIn() {
        var lsValue = true;
        $.ajax({
            type: "Post",
            url: "IsUserLoggedIn",
            datatype: "json",
            async: false,
            success: function (foData) {
                if (foData == "true")
                    lsValue = true;
                else
                    lsValue = false;
            },
            error: function (xhr, ajaxOptions, thrownError) {
            },
            complete: function (e) {
            }
        });
        return lsValue;
    }

实际上,您是在
MVC
中执行此操作的;您可能需要为此使用
“@”
语法。请试试这个,可能会有帮助

 <script language="javascript" type="text/javascript">
     var sessionTimeoutWarning =    @System.Configuration.ConfigurationSettings.AppSettings["SessionWarning"].ToString();
     var sessionTimeout = @Session.Timeout;    
     var sTimeout = parseInt(sessionTimeoutWarning) * 60 * 1000;
        setTimeout('SessionWarning()', sTimeout);

   function SessionWarning() {
     var message = "Your session will expire in another " + (parseInt(sessionTimeout) - parseInt(sessionTimeoutWarning)) + 
                   " mins! Please Save the data before the session expires";
     alert(message);
   }
</script>

var sessionTimeoutWarning=@System.Configuration.ConfigurationSettings.AppSettings[“SessionWarning”].ToString();
var sessionTimeout=@Session.Timeout;
var sTimeout=parseInt(sessionTimeoutWarning)*60*1000;
setTimeout('SessionWarning()',sTimeout);
函数SessionWarning(){
var message=“您的会话将在另一个“+(parseInt(sessionTimeout)-parseInt(sessionTimeoutWarning))中过期”+
“分钟!请在会话到期前保存数据”;
警报(信息);
}
发生了什么(或没有发生)?在浏览器中查看脚本时,它看起来是否正确?