繁体   English   中英

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

[英]Setting a ASP.NET Session in jquery.click()

当用户在我的站点上选择一个选项卡时,我想存储它们所在的选项卡,以便在页面刷新后将它们发送回该位置。 我现在有这个(不好的编码atm,我正在测试这个概念):

$("#index_0_li").click(function() {
    <%= Session["SelectedIndex"] = "0" %>
});

$("#index_1_li").click(function() {
    <%= Session["SelectedIndex"] = "1" %>
});

var index = <%= Session["SelectedIndex"] %>;

问题是,因为<%= %>不等待单击,所以索引始终设置为1。

是否有人对我如何实现自己想做的事情有任何想法?

谢谢。

只需使用客户端会话-也称为“ Cookie”。

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

正如El Ronnoco所说,如果要在ASP.NET会话中选择选定的选项卡,则需要将其发送回服务器。 您可以通过AJAX调用来执行此操作,也可以将其包含在您在应用程序中执行的另一篇文章中。

但是,如果您只想维护客户端的选定选项卡,则可以按照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();
    }
});

点击功能是客户端javascript。 您不能在客户端上设置服务器端变量。 您应该在服务器端设置selectedindex,例如使用jquery帖子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM