Почему нельзя сделать объявление непосредственно в классе страницы в случае переменной сеанса? - PullRequest
0 голосов
/ 04 июня 2011

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

Ошибка 1 Недопустимый токен '[' в объявлении члена класса, структуры или интерфейса E: \ ASP.NET \ Trial \ statemanagement.aspx.cs 17 12 E: \ ASP.NET \ Trial \

ниже приведен код, который я пытался

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class statemanagement : System.Web.UI.Page
{
    int count=0;
    Session["FirstName"] = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
     if(!IsPostBack)
     {
         count = int.Parse(Session["FirstName"].ToString());
     }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        Response.Write(count.ToString());
        Session["FirstName"] =++count;

    }
}

Я не получаю ошибкудля переменной count я не знаю, почему?

Любая помощь будет рассматриваться спасибо

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Это не декларация.Это задание.Вы не можете разместить оператор присваивания непосредственно внутри класса.Вы должны поместить его в метод или свойство.

Ссылаясь на Обзор состояния сеанса ASP.NET

Переменные сессии хранятся в SessionStateItemCollection объект, который предоставляется через свойство HttpContext.Session .На странице ASP.NET текущие переменные сеанса предоставляются через свойство Session объекта Page.

Коллекция переменных сеанса индексируется по имени переменной или по целочисленному индексу.Переменные сеанса создаются путем обращения к переменной сеанса по имени.Вам не нужно объявлять переменную сеанса или явно добавлять ее в коллекцию.

Если вы хотите инициализировать переменные сеанса независимо от страницы, вы можете использовать обработчики событий приложения, такие как Application_Start иSession_Start, который вы можете найти в файле global.asax .

1 голос
/ 04 июня 2011

Вы не можете сделать Session["FirstName"] = 0; вне рамок метода.Попробуйте переместить его вниз, чтобы оказаться внутри Page_Load.

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