Как добавить значение сеанса на страницу обработчика asp.net и получить доступ к нему на другой странице - PullRequest
1 голос
/ 06 февраля 2012

Я устанавливаю значение сеанса на странице обработчика и хочу использовать его на другой странице, когда я получаю доступ к значению сеанса на другой странице, я получаю сообщение об ошибке, говорящее, что ссылка на объект не установлена ​​на экземпляр объекта.

string ad=Session["StackOverflow"].ToString();

Как получить доступ к значению сеанса на странице c # .aspx

public class Upload : IHttpHandler, IRequiresSessionState{
    public void ProcessRequest (HttpContext context) {

    context.Session.Add("StackOverflow",filename);    
}}

1 Ответ

2 голосов
/ 06 февраля 2012

То, что у вас там должно работать, за исключением того, что стоит отметить, что вам нужно включить реализацию интерфейса IRequiresSessionState.

using System.Web.Sessionstate;

 public class Handler: IHttpHandler, IRequiresSessionState
 {

    public void ProcessRequest(HttpContext context)
    {
       context.Session["YourSessionVar"] = yourStringVar;
    }
 }

РЕДАКТИРОВАТЬ: OP отредактированный вопрос после публикации

Для того, чтобычтобы получить доступ к переменной на другой странице, обязательно используйте IRequiresSessionState и на этой странице.Если вы этого не сделаете, у вас не будет доступа к переменным сеанса.

РЕДАКТИРОВАТЬ: Дополнительная информация, запрашиваемая OP

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

using Sytem.Web.SessionState;

public class YourClass : IRequiresSessionState
{
    public string MyVar;

    protected void Page_Load(object senser, EventArgs e)
    {
        MyVar = Session["YourSessionVarName"].ToString();
    }
}

Теперь, чтобы добавить это в функцию onclick на странице html / aspx, вы делаете это

<div onclick="yourJScriptFunction('<% Response.Write(MyVar) %>');">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...