Хранение значений в сеансе asp.net с использованием jquery - PullRequest
2 голосов
/ 25 февраля 2010

Как хранить значения в сеансе, используя jquery.Я использую следующий код

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

для получения данных из сеанса.Как сделать обратный процесс.

Задача:

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

Гита

Ответы [ 3 ]

5 голосов
/ 25 февраля 2010

Вам, вероятно, потребуется настроить обработчик HTTP или что-то подобное, которое будет принимать запросы и сохранять вещи в сеансе. 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...

После этого вам нужно будет настроить пост HTTP-запрос через jquery, который помещает все необходимые значения в эти поля "key" и "val".

$.post(
  'url/to/your/handler.ashx',
  {key: "PesterchumHandle", val: "carcinoGenetecist"}
); 
1 голос
/ 28 августа 2012

Я потратил весь свой день, чтобы разобраться с этой проблемой, пока это просто быстрое решение. Во время вызова PageMethod идентификатор сеанса не передается с URL-адресом запроса, поэтому запускается новое событие session_start. Нам просто нужно установить точный путь запроса перед вызовом метода страницы, чтобы новое событие запуска сеанса не могло быть запущено.

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);
0 голосов
/ 25 февраля 2010

Вам нужно будет сделать сообщение ajax на сервер через jquery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...