2011-06-04 25 views
0

我的问题是一行,但这让我非常困惑。 为什么不能声明和初始化在部分类它抛出一个错误说为什么不能在会话变量的情况下直接在页面类中声明?

错误1个无效令牌“[”类, 结构或接口部件 声明E中的页面的会话变量:\ ASP .NET \试用\ statemanagement.aspx.cs 17 12 E:\ ASP.NET \试用\

下面

是我试图

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; 

    } 
} 

代码我没有得到计数变量i不出错知道为什么?

任何帮助将被视为谢谢

回答

3

这不是一个声明。这是一项任务。您不能直接在类中放置赋值语句。您必须将其放置在方法或属性中。

指的ASP.NET Session State Overview

会话变量被存储在 SessionStateItemCollection对象 通过 HttpContext.Session属性露出。在 ASP.NET页面中,当前会话 变量通过Page对象的会话属性公开。

会话变量的集合是 由变量的名称或 索引整数索引。会话变量 通过参考会话变量名称来创建。您不必 必须声明会话变量或 明确将其添加到集合。

如果你想从你的页面可以使用应用程序的事件处理程序,如Application_StartSession_Start,你可以在的Global.asax文件找到独立初始化会话变量。

+0

让我明确赋值是可能的部分类,因为我知道我可以赋值的int数它不会抛出任何异常:) – Devjosh 2011-06-04 12:56:34

+0

@Devjosh:让我改正你亲爱的,你可以直接给一个变量赋值只在声明它的时候才在类中。再次,'Session [“Key”] = value;'不是声明,而只是一个赋值。 – 2011-06-04 13:01:47

+0

现在我同意它谢谢 – Devjosh 2011-06-04 13:05:27

1

您不能在方法范围外做Session["FirstName"] = 0;。尝试将其移到Page_Load之内。

+0

我知道并做到了这一点,但我只是想挖掘它不允许反正的原因,而且我可以分配计数变量这是int类型运行良好?谢谢 – Devjosh 2011-06-04 12:58:52

相关问题