【发布时间】:2017-05-05 19:39:54
【问题描述】:
我正在尝试在我的 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
}
像这样,该属性在第一个操作中设置,但其值在第二个操作中不可用...
我可以将其声明为静态,但这不是解决方案,因为在 web 中应避免使用静态变量.. ?
编辑:更详细地解释问题:
当属性 _gu_id 在第一个 ActionFirst 方法中设置时,我需要能够在 ActionSecond 方法中获取它的值,而不使用静态变量...
【问题讨论】:
-
XY 问题。您有一个问题,您认为解决方案是“在我的控制器中创建一个成员变量”。解释你试图解决的问题,因为控制器是根据请求创建的。您可能需要在会话、令牌、标头或其他地方存储一些内容。
-
@CodeCaster 问题如下:在第一种方法中设置时,变量 GUID 需要在第二种方法中可用...我提到我可以为此使用静态变量,但我避免使用因为我和他们有过非常不愉快的经历......
-
@CodeCaster 因此,在第一种方法中设置 _gu_id 变量时,当调用第二种方法时,我需要在第二种方法中设置第一种方法中设置的 _gu_id 值...
-
“变量 GUID 需要在第二种方法中可用” - 然后将其粘贴到会话、数据库中,或将其传递给用户让他们返回第二个请求。
-
@CodeCaster 好的,会话似乎是最好的解决方案,谢谢! :)
标签: c# asp.net asp.net-mvc asp.net-mvc-4 static