Javascript ASP.NET MVC在离开当前页面时放弃会话

Javascript ASP.NET MVC在离开当前页面时放弃会话,javascript,c#,asp.net,asp.net-mvc,Javascript,C#,Asp.net,Asp.net Mvc,当用户离开正在查看的页面时,我需要启动会话。放弃()。 如果用户刚刚刷新页面,则必须保持页面会话。 当卸载页面窗口时,我尝试在客户端触发ajax调用。addEventListener(“卸载”,函数(e)…,但我无法区分用户是正在刷新页面还是正在离开页面。 我目前正在使用ASP.NET MVC5。 有什么建议吗?没有直接的方法可以做到这一点……问题是:你为什么要这么做?我觉得这是个糟糕的设计 您可以处理一些并检查域是否与您当前拥有的域相同。如果不相同,则启动AJAX调用以放弃会话。确保该调用是带

当用户离开正在查看的页面时,我需要启动会话。放弃()。 如果用户刚刚刷新页面,则必须保持页面会话。 当卸载页面
窗口时,我尝试在客户端触发ajax调用。addEventListener(“卸载”,函数(e)…
,但我无法区分用户是正在刷新页面还是正在离开页面。 我目前正在使用ASP.NET MVC5。
有什么建议吗?

没有直接的方法可以做到这一点……问题是:你为什么要这么做?我觉得这是个糟糕的设计


您可以处理一些并检查域是否与您当前拥有的域相同。如果不相同,则启动AJAX调用以放弃会话。确保该调用是带有CSRF令牌的HTTP POST,以确保不会受到CSRF的攻击。

没有直接的方法来做到这一点……问题是:您为什么要这样做?我觉得我认为这是个糟糕的设计


您可以处理一些并检查域是否与您当前拥有的域相同。如果不相同,则启动AJAX调用以放弃会话。确保该调用是带有CSRF令牌的HTTP POST,以确保不会受到CSRF的攻击。

回答您的问题:我需要在会话中保留一个可与页面交互管理的项目列表(类似于单页应用程序)。当用户单击“保存”时按钮数据保存在DB上。如果您有不同的方法来实现这一点,那将非常好。好的。在这种情况下,这个答案可能会对您有所帮助。我尝试为popstate事件添加一个侦听器,如您的链接中所述,但似乎无法在chrome上运行。您能发布一个符合您建议的工作示例吗?回答您的问题on:我需要在会话中保留一个可以与页面交互管理的项目列表(如单页应用程序)。当用户单击“保存”时按钮数据保存在DB上。如果您有不同的方法,这将非常好。好的。在这种情况下,这个答案可能会对您有所帮助。我尝试为popstate事件添加一个侦听器,如链接中所述,但似乎无法在chrome上工作。您能发布一个符合您建议的工作示例吗?