使用jquery在asp.net会话中存储值

如何使用jquery在会话中存储值。 我使用以下代码

var Link = ''; 

从会话中获取数据。 如何进行逆向过程。

问题:

  I need this in my master page. so i cant use .ajax{}. 

格塔

您可能需要设置一个HTTP处理程序或类似的东西来接受请求并在Session中存储内容。 Visual Studio在解决方案视图的“添加”菜单中有这个位置。 (如果您使用的是ASP.NET MVC,则只需设置另一个操作而不是通用处理程序。)

由于这些值可能具有不同的类型(int,string等), 并且由于您不希望恶意用户访问他们认为合适的任何会话密钥,您可能需要设置一个分支来确定如何处理每个键。 像这样的东西(在你创建的处理程序中):

 string key = context.Request.QueryString["key"].ToString(); string val = context.Request.QueryString["val"].ToString(); if(key == "AshDiffuserID"){ int ash_diffuser_id = Convert.ToInt32(val); Session["AshDiffuserID"] = ash_diffuser_id; } else if(key == "PesterchumHandle") { string handle = val; Session["PesterchumHandle"] = handle; } else // etc... 

之后,您需要通过jquery设置一个后HTTP请求 ,该请求在“key”和“val”字段中放置您需要的任何值。

 $.post( 'url/to/your/handler.ashx', {key: "PesterchumHandle", val: "carcinoGenetecist"} ); 

我浪费了一整天来解决这个问题,而这只是一个快速解决方案。 在PageMethod调用期间,会话ID未与请求URL一起传递,因此新的session_start事件将被触发。 我们只需要在调用pagemethod之前设置确切的请求路径,这样就不会触发新的会话启动事件。

 if ('<%= HttpContext.Current.Session.IsCookieless %>==True') { //need to pass session id in request path PageMethods.set_path('<%= System.Web.Configuration.WebConfigurationManager.AppSettings("WebRoot") %>(S(<%=Session.SessionID%>))/secure/PageName.aspx'); } PageMethods.PageMethodName(param1,param2, CallSuccess, CallFailed); 

您需要通过jquery对服务器执行ajax发布。

Interesting Posts