在C#类之间传递值

时间:2011-05-25 01:35:15

标签: c# .net asp.net session

我在C#的精彩世界中相当新,我不知道如何应对这样的问题。

我在Visual Studio 2008上有一个.NET网站,我有一个主页main.aspx(及其后面的main.aspx.cs)和一个游戏页面game.aspx(也有{ {1}})。

game.aspx.cs的主要类中,我有一个静态变量main.aspx.cs,并且有一个名为getUsername的方法,它只返回这个值。

现在在我的游戏类(private static string _username;)中我有一个事件处理程序game.aspx.cs,在这个函数中我需要saveButton_Click()的值!

如果有帮助,用户在主页面上启动,然后登录...如果登录有效,则保存变量_username,然后用户单击链接转到{{1页面!

我查看了内部关键字,但我不确定如何在这个特定的例子中使用它,或者即使在这个例子中这是正确的事情!

4 个答案:

答案 0 :(得分:4)

要回答您的问题,您可以在单独的类中创建公共静态属性。

然而,

当两个人同时使用您的网站时,此模型将会失败(或更糟)。

相反,您应该使用Session State

答案 1 :(得分:3)

将其添加到您的主页和游戏页面类:

protected string UserName {
    get { 
        string retVal=string.Empty;
        if (!string.IsNullOrEmpty(Session["UserName"]))
            retVal=Session["Username"].ToString();
        return retVal;
    }
    set{
        Session["UserName"]=value;
    }
}

然后从您的代码访问该属性;

答案 2 :(得分:1)

您必须使用Sessions来存储和访问多个页面中的值:

//To store value in session variable
Session["UserName"] = "UserName"; 

//To access the value in the session variable
String UserName = Session["UserName"];

检查详细信息ASP.NET Session State

答案 3 :(得分:0)

恕我直言,您可以使用基于表单的身份验证,这样可以通过User.Identity.Name轻松获取用户名。