【问题标题】:State of a ViewStateViewState 的状态
【发布时间】:2011-04-11 06:29:53
【问题描述】:

我一直在尝试使用从页面的另一个用户控件分配给页面的用户控件之一的 ViewState 变量 ViewState["username"]。

ViewState 的值似乎为空。

页面内的 Y 用户控件无法读取彼此的 ViewState 值。

谢谢, 毗湿奴

【问题讨论】:

  • ViewState 不是保存用户名的安全位置。尝试改用表单身份验证。
  • ViewState["Username"] = user.Username; // 这是在一个控件中分配的,并且在我读取视图状态字符串的控件中 username = ViewState["Username"] as string;
  • 也许将ViewState 存储在Page 中会解决您的问题,而不是UserControl 本身
  • 我可以使用 session 来避免这种混淆......但只是好奇同一页面中的用户控件之间是否存在视图状态的状态。

标签: asp.net user-controls webforms viewstate


【解决方案1】:

这是设计使然 - ASP.NET 将区分各种(实例)控件的视图状态。这种区分基于对照 ID。这是必需的,因为否则控件作者无法使用相同的视图状态键,并且无法知道其他控件作者可能使用哪些键。

在您的情况下,我建议您将数据存储到页面级别的视图状态中,并通过属性将其传递给您的用户控件(从页面)。

【讨论】:

    猜你喜欢
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多