0

正如标题所提到的,如何声明一个只存在于单个页面中的会话。这意味着当我转到另一个页面时,会话将清除。

4

4 回答 4

2

您可以使用ViewStateASP.NET 页面提供 ViewState 属性作为内置结构,用于在同一页面的多个请求之间自动存储值。

要在视图状态中设置一个变量,

ViewState["Variable"]=YourValue;

从视图状态获取信息

string myVar=ViewState["Variable"];
于 2013-09-09T08:31:38.953 回答
1

ViewState是特定于页面的,因此这将是Web 表单应用程序的最佳选择。 了解 ViewState将是一个好的开始。

如果您使用的是MVC,那么您可以使用ViewBag、ViewDataHidden VariablesViewBag解释 。

解释您想要实现的目标可能也是值得的,因为可能有更好的选择。

于 2013-09-09T08:29:51.427 回答
0

如果您使用 Web 表单,理想的解决方案是仅使用视图状态,因为它是特定于页面的,并且无法在任何其他页面上访问。虽然有一种方法可以通过设置来禁用页面上的会话:

启用会话状态 = 假

在页面指令上(在 aspx 页面上)。但这并不能清除会话,而是避免在特定页面上使用会话。

如果您使用的是 MVC,那么您可以使用 tempdata 在单个 get 和 post 周期中获取数据。但与视图状态(在 Web 表单中)不同,如果您想在另一个回帖中使用它,则必须重新填充。

您可以根据需要使用许多其他状态管理技术:

http://msdn.microsoft.com/en-us/library/75x4ha6s.aspx

希望这可以帮助。

于 2013-09-09T09:26:19.723 回答
0

正如 Bibhu 所说,Session 变量遍布所有页面。

但是,在其中,您可以调用一个会话变量Session["YourPageIDorName"] = new Dictionary()并使用它来存储每页变量。

于 2013-09-09T08:27:19.100 回答