C# 从另一个类获取变量值

C# 从另一个类获取变量值,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我想保存一些变量以备将来参考,所以我声明了一个类Container.cs public class Container { public static String verifierCode; } 然后我有了我的HomeController.cs,在这里我更新了容器的变量值: public class HomeController : Controller { public ActionResult ValidateTwitterAuth() { Con

我想保存一些变量以备将来参考,所以我声明了一个类
Container.cs

public class Container
{
    public static String verifierCode;
}
然后我有了我的
HomeController.cs
,在这里我更新了容器的变量值:

public class HomeController : Controller
{
    public ActionResult ValidateTwitterAuth()
    {
        Container.verifierCode = Request.Query.ElementAt(2).Value;
        //do some stuff
    }
    public String sendTweet(String NewTweet)
    {
        var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(Container.verifierCode, Container.authorizationId);
        var user = Tweetinvi.User.GetAuthenticatedUser(userCreds);
        user.PublishTweet(NewTweet);
        return "sent!";
    }
}
它在
validateWitteRauth
中使用特定值进行更新,但是当
sendTweet
方法调用
容器时。verifierCode
为空。 我显然试图调试它,但如果我将变量添加到quickwatch,我会得到它

错误CS0103:当前上下文中不存在名称“Container”

此外,类和容器都位于同一命名空间中。 你知道为什么会发生这种情况吗?我只是想声明一个全局变量,我可以从其他类/控制器访问它

如果这听起来像是一个初学者的问题,我很抱歉,但我刚刚开始接触asp.net

编辑:从答案来看,我处理问题的方式是错误的。因此,我安装了
Microsoft.AspNetCore.Session
NuGet软件包,并按如下方式使用它:

 HttpContext.Session.SetString("verifierCode", Request.Query.ElementAt(2).Value);
 HttpContext.Session.SetString("authorizationId", Request.Query.ElementAt(0).Value);

现在它开始工作了。谢谢大家的回答

您可以将此数据存储到会话中而不是类中。如下例所示

public class HomeController : Controller
    {
        public ActionResult ValidateTwitterAuth()
        {
            Session["verifierCode"] = Request.Query.ElementAt(2).Value;
            //do some stuff
        }
        public String sendTweet(String NewTweet)
        {
            var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(Session["verifierCode"], Container.authorizationId);
            var user = Tweetinvi.User.GetAuthenticatedUser(userCreds);
            user.PublishTweet(NewTweet);
            return "sent!";
        }
    }

我刚刚更改了仅验证代码

您可以将此数据存储到会话中而不是类中。如下面的示例所示

public class HomeController : Controller
    {
        public ActionResult ValidateTwitterAuth()
        {
            Session["verifierCode"] = Request.Query.ElementAt(2).Value;
            //do some stuff
        }
        public String sendTweet(String NewTweet)
        {
            var userCreds = AuthFlow.CreateCredentialsFromVerifierCode(Session["verifierCode"], Container.authorizationId);
            var user = Tweetinvi.User.GetAuthenticatedUser(userCreds);
            user.PublishTweet(NewTweet);
            return "sent!";
        }
    }

我刚刚更改了仅验证代码

Remove
static
@BenderBending您能详细说明解决问题的方法吗?您需要将此数据存储到会话中。您确定要引用您自己的自定义容器类而不是像System.ComponentModel.Container这样的本机.NET容器类吗?@BenderBending就是这样“否”。删除
static
@BenderBending您能详细说明解决问题的方法吗?您需要将此数据存储到会话中。您确定引用的是您自己的自定义容器类而不是System.ComponentModel.Container之类的本机.NET容器类吗?@BenderBending所以这是一个“否”。但是,这不是问题的答案,这不是一个解决方案(不是很好的解决方案)是的,Caspar,我同意你的工作,但这不是一个好的解决方案,但你需要按照你的要求设计你的架构师。这很有效,但是,这不是问题的答案,这是一个解决方案(不是很好的解决方案),是的,Caspar,我同意你的这项工作,但这不是一个好的解决方案,但你需要设计你的建筑师为您的要求。