在控制器C#的所有方法中创建可用的共享属性

时间:2016-12-20 14:40:18

标签: c# asp.net asp.net-mvc asp.net-mvc-4 static

我试图在我的C#控制器中实现一个共享属性,我已经这样定义了它:

public string guid;
    public string _gu_id
    {
        get { return guid; }
        set { guid = value; }
    }

public ActionResult ActionFirst()
{
 _gu_id = something...;
}

public ActionResult ActionSecond()
{
// checking now if the _gu_id is !=null
if(_gu_id!=null)
// do something here
}

像这样,属性在第一个动作中被设置,但是它的值在第二个动作中不可用...

我可以将它声明为静态,但这不是解决方案,因为在网络中应避免使用静态变量。?

编辑:更详细地解释问题:

当在第一个ActionFirst方法中设置了proprety _gu_id时,我需要能够在ActionSecond方法中获取其值,而不使用静态变量......

2 个答案:

答案 0 :(得分:4)

每当您重定向到新控制器的新操作方法时,这是一个新请求,您无法像查找方式那样将值从一个请求保留到另一个请求。

而是像这样使用Session变量。

Session["guid"] = "YourValue";

答案 1 :(得分:2)

如果您正在避免使用持久会话变量(通常是个好主意),MVC还提供TempData用于在重定向之间挂起数据。