在jquery.click()中设置ASP.NET会话

当用户在我的网站上选择一个标签时,我想存储它们所在的标签,以便我可以在页面刷新后将它们发回给那里。 我现在有这个(原因是编码错误,我正在测试这个概念):

$("#index_0_li").click(function() {  }); $("#index_1_li").click(function() {  }); var index = ; 

问题是,因为不等待on点击,所以索引始终设置为1。

有没有人对如何实现我想做的事情有任何想法?

谢谢。

只需使用客户端会话 – 又名“cookies”。

在click事件上设置cookie,然后当您提交页面(或“post back”)时,此cookie将与HTTP请求一起发送,允许您通过Request.Cookies读取它。

正如El Ronnoco所说,如果你想要ASP.NET会话中的选定选项卡,那么你需要将它发送回服务器。 您可以通过AJAX调用执行此操作,也可以将其包含在您在应用程序中执行的其他post中。

但是,如果您只想维护客户端的选定选项卡,则可以按照RPM1984建议将其存储在cookie(或其他本地存储,如果允许HTML5)中,并选择最后一次记录在cookie /本地存储中的选项卡加载页面。 以下是我的头脑,所以可能有语法错误(我需要看到你的选项卡和其他标记来做一个有效的解决方案):

 $("#index_0_li").click(function() { localStorage.setItem('SelectedTab', '#index_0_li'); }); $("#index_1_li").click(function() { localStorage.setItem('SelectedTab', '#index_1_li'); }); $(document).ready(function() { var index = localStorage.getItem('SelectedTab'); if (index !== null) { $(index).click(); } }); 

点击function是客户端javascript。 您无法在客户端上设置服务器端变量。 您应该设置selectedindex服务器端,例如使用jquerypost。