我试图在我的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方法中获取其值,而不使用静态变量......
答案 0 :(得分:4)
每当您重定向到新控制器的新操作方法时,这是一个新请求,您无法像查找方式那样将值从一个请求保留到另一个请求。
而是像这样使用Session变量。
Session["guid"] = "YourValue";
答案 1 :(得分:2)
如果您正在避免使用持久会话变量(通常是个好主意),MVC还提供TempData用于在重定向之间挂起数据。