正如标题所提到的,如何声明一个只存在于单个页面中的会话。这意味着当我转到另一个页面时,会话将清除。
4 回答
您可以使用ViewState
ASP.NET 页面提供 ViewState 属性作为内置结构,用于在同一页面的多个请求之间自动存储值。
要在视图状态中设置一个变量,
ViewState["Variable"]=YourValue;
从视图状态获取信息
string myVar=ViewState["Variable"];
ViewState
是特定于页面的,因此这将是Web 表单应用程序的最佳选择。 了解 ViewState将是一个好的开始。
如果您使用的是MVC,那么您可以使用ViewBag、ViewDataHidden Variables
等ViewBag
解释 。
解释您想要实现的目标可能也是值得的,因为可能有更好的选择。
如果您使用 Web 表单,理想的解决方案是仅使用视图状态,因为它是特定于页面的,并且无法在任何其他页面上访问。虽然有一种方法可以通过设置来禁用页面上的会话:
启用会话状态 = 假
在页面指令上(在 aspx 页面上)。但这并不能清除会话,而是避免在特定页面上使用会话。
如果您使用的是 MVC,那么您可以使用 tempdata 在单个 get 和 post 周期中获取数据。但与视图状态(在 Web 表单中)不同,如果您想在另一个回帖中使用它,则必须重新填充。
您可以根据需要使用许多其他状态管理技术:
http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx
希望这可以帮助。
正如 Bibhu 所说,Session 变量遍布所有页面。
但是,在其中,您可以调用一个会话变量Session["YourPageIDorName"] = new Dictionary()
并使用它来存储每页变量。