сохранить определенное число в сессии на HREF в ASP.Net, C # - PullRequest
0 голосов
/ 14 октября 2011

Я уже нашел это на этом сайте.

как передать переменную сеанса в href

Но то, что я хочу, это наоборот. и я не могу это сделать ..

Мне нужен правильный синтаксис ..

это ......

..../home.aspx?<%Session["egSession"]=1%>

или

..../home.aspx?=<%Session["egSession"]=1%>

или

..../home.aspx?<%=Session["egSession"]=1%>

Но я считаю, что все вышеперечисленное неверно .. потому что ни один из них не работает ..

ТКЗ ..

Ответы [ 4 ]

1 голос
/ 14 октября 2011

Session.Add("egSession", 1) добавит 1 к куки-файлу сессии egSession.

Вы также можете быть уверены, что он еще не существует, выполнив следующие действия:

Session.Remove("egSession");
Session.Add("egSession", 1);

Чтобы получить строку запросазначение из адреса, который вы бы (код позади)

var value = Request["egSession"];

Это означает, что вы можете сделать:

Session.Remove("egSession");
Session.Add("egSession", Request["egSession"]);

Надеюсь, что поможет!

** ОБНОВЛЕНИЕ **

Если вы не можете коснуться файлов .cs, вы можете сделать это в ASPX-файле, обернув свой код в <% ... code goes here ... %>

0 голосов
/ 14 октября 2011

вы можете использовать javascript с cookie для хранения значения, которое вы хотите установить в Session.

Например: - url-url.apsx / egValue = 1 прочитать этот URL, используя JavaScript.Поместите ключ и значение в cookie.Затем вы можете прочитать значение cookie с сервера и поместить его в сессию.

надеюсь, это поможет.

0 голосов
/ 14 октября 2011

Насколько я понимаю, вы хотите что-то вроде этого:

APage

<a href="..../home.aspx?egSession=1">Take Me home</a>

Home.aspx.cs: код позади страницы,Например, событие OnPageLoad

Session["egSession"] = Request.QueryString["egSession"];

Home.aspx

<div>Session: <% =Session["egSession"] %></div>
<div>Query String: <% = Request.QueryString["egSession"] %></div>

Если вы пытаетесь сделать все это в одном, я бы попробовал следующее:

APage.aspx.cs

Создать открытый метод (при необходимости изменить тип входного параметра)

public string SessionMagic(object input)
{
     Session["egSession"] = input;
     return Session["egSession"].ToString();
}

APage.aspx

<a href="..../home.aspx?egSession=<%= SessionMagic(1)%>">A Link</a>

* ОБНОВЛЕНИЕ: *

Если вы не можете обновить файлы .cs, вы можете добавить код на стороне сервера в aspxстраница, не большая практика, но это может быть сделано.Инкапсулируйте код в теги сценария с помощью набора атрибутов запуска сервера.Например:

<script runat="server">
  public string ServerSideFunction(string input)
  {
     Session["egSession"] = Request.QueryString["egSession"];

     public string SessionMagic(object input)
     {
         Session["egSession"] = input;
         return Session["egSession"].ToString();
     }

  }
</script>
0 голосов
/ 14 октября 2011

, если известно новое значение переменной сеанса, например, 1 в настройках образца это можно сделать где угодно

<% Session["egSession"]=1; %>

если вы хотите передать его как параметр запроса, сделайте это:

..../home.aspx?egSession=<%=Session["egSession"]%>

Дело в том, что вам нужно имя для значения, то есть egSession, но вы можете называть его как угодно.

Однако, если вы уже знаете значение, которое вы можете просто сделать:

..../home.aspx?egSession=1
...