Pregunta

Cómo almacenar valores en la sesión usando jquery.Estoy usando el siguiente código

var Link = '<%=Session["Link"]%>';

para obtener datos de la sesión.Cómo hacer el proceso inverso.

Problema:

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

Geetha

¿Fue útil?

Solución

Es probable que necesite configurar una HTTP manejador o algo similar que aceptará solicitudes y almacenar cosas en la sesión. Visual Studio tiene esta en algún lugar de los menús "Añadir" en la vista de solución. (Si está utilizando ASP.NET MVC, que acaba de configurar otra acción en lugar de un controlador genérico).

Dado que esos valores se pueden tener diferentes tipos (int, string, etc.) y ya que no desea que los usuarios maliciosos que sobresalen en cualquier clave de sesión les parezca, es probable que desee establecer una sucursal para determinar qué hacer con cada tecla. Algo como esto (en el interior del controlador que ha creado):

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...

Después de eso, tendrá que establecer un solicitud HTTP POST través de jQuery que lo que pone en los valores necesitan "clave" y los campos "val".

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

Otros consejos

perdí mi día entero para ordenar este problema, mientras que esto es sólo una solución rápida. Durante la llamada PageMethod, ID de sesión no se está pasando con solicitud de URL, por lo que es nuevo evento session_start ser despedido. Sólo tenemos que establecer la ruta exacta petición antes de llamar a un pagemethod, por lo que el nuevo evento de inicio de sesión no puede ser despedido.

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);

Se tendrá que hacer un puesto de Ajax al servidor a través de jQuery.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top