HttpContext.Items 是否有限制?如果有的话,还有什么选择?
在 FirstController 索引视图中,我正在设置项目。
public class FirstController : Controller
{
public ActionResult Index()
{
HttpContext.Items["Sample"] = "DATA";
return View();
}
}
<a href="/SecondController/TestView">Sample Link</a>
当我尝试在 SecondController 中获取值时,它会给我null而不是'DATA'
public class SecondController : Controller
{
public ActionResult TestView()
{
string text = HttpContext.Current.Items["Sample"];
return View();
}
}
答案 0 :(得分:1)
HttpContext.Items
“获取一个键/值集合,可用于在HTTP请求期间组织和共享数据[...] ”。
您需要像Session这样的有状态机制来保留请求之间的数据:
Session["Sample"] = "DATA";
另见what is correct way of storing data between requests in asp.mvc 。
答案 1 :(得分:0)
Items
的{{1}}个问题用于在单个请求中共享数据。当您将值设置为第一个控制器中的HttpContext
键时,一旦请求管道完成,它就会被丢弃。
我认为您正在寻找可通过HttpContext.Session
媒体访问的Sample
。您可以在代码中将HttpSessionState
替换为HttpContext.Items
,它应该按原样运行。
HttpContext.Session
答案 2 :(得分:0)
HttpContext
的数据保留在内存中,然后将其处理掉。