【问题标题】:how to convert viewstate to session state?如何将视图状态转换为会话状态?
【发布时间】:2014-11-29 18:13:41
【问题描述】:

我已经创建了视图状态。我想在不同页面中使用视图状态。是否可以访问不同页面中的视图状态?

else 可以在 asp.net c# 中移动会话对象中的视图状态。该怎么做?

【问题讨论】:

  • 如果你想这样做,你正在使用 ViewState 错误。但请提供更多背景信息,我们可以详细说明您应该做什么。
  • 如果您决定完全按照您的要求行事 - 请查看 stackoverflow.com/questions/4622000/…。请注意,将共享信息存储在视图状态中非常奇怪,因此您可能应该重新考虑您的方法(如答案所示)。

标签: c# asp.net


【解决方案1】:

我想在不同的页面使用视图状态

答案:那么就不需要使用ViewState。您应该根据您的问题使用Session

什么是 ViewState

视图状态是最重要和最有用的客户端状态之一 管理机制。它可以存储发布时的页面值 返回页面(从服务器发送和接收信息)。 ASP.NET 页面将 ViewState 属性作为内置结构提供 用于在多个请求之间自动存储值 同一页。

什么是会话

Session 提供了一种在服务器内存上存储信息的工具。它 可以支持任何类型的对象与我们自己的自定义一起存储 对象。对于每个客户端,会话数据都是单独存储的,这 意味着会话数据存储在每个客户端的基础上

您可以轻松地将 Session 转换为 ViewState

if(Session["Key"]!=null)

Viewstate["Key"] = Session["Key"];

反之亦然

if(Viewstate["Key"]!=null)

Session["Key"]=Viewstate["Key"]

【讨论】:

    【解决方案2】:

    Viewstate 等于隐藏字段值。这仅在定义和使用视图状态的当前页面可用。如果您想在其他页面中读取这些数据,它将不可用。

    您需要将这些值存储到session,无论您在哪里完成ViewState["key"]= "value"。你的意思是访问其他页面中的密钥。 Viewstate 保存为隐藏字段中的编码值,而 session 值存储在服务器内存中。

    例如Session["key"] = "value".

    【讨论】:

      【解决方案3】:

      会话用于多个页面 而视图状态只能用于一页

      如何将会话转换为视图状态。

      Viewstate["ABC"] = Session["ABC"]
      

      但对于多个页面,您需要会话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 2012-08-20
        • 1970-01-01
        • 2020-01-23
        • 1970-01-01
        • 1970-01-01
        • 2020-04-16
        相关资源
        最近更新 更多