ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件

Posted

技术标签:

【中文标题】ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件【英文标题】:ASP.NET, User Control and ViewState lost the correct data into try get into the user control event 【发布时间】:2020-08-28 20:55:04 【问题描述】:

下午好,我有一个 ASP.NET 网页,我创建了一个用户控件,该控件具有一些我需要始终可检索的属性。 添加了 ViewState 以保留信息,但现在的缺点是,当在同一个 asp.net 页面上添加相同的控件时,并且从控件的函数中我想检索属性的值,这将检索最后输入的值在 ViewState 中。

非常感谢您。

<PersistenceMode(PersistenceMode.InnerProperty), TemplateInstance(TemplateInstance.Single)>
Public Property GuardadoTemporal() As Boolean
    Get
        If ViewState("GuardadoTemporal") Is Nothing Then
            Return false
        Else
            Return CBool(ViewState("GuardadoTemporal"))
        End If
    End Get
    Set(ByVal value As Boolean)
        ViewState("GuardadoTemporal") = value
    End Set
End Property

example for use

【问题讨论】:

【参考方案1】:

使用SaveControlStateLoadControlState https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.control.savecontrolstate?view=netframework-4.8 这会将其保存到每个控件的 controlstate 中,这样您就不会让用户控件破坏彼此的数据。 controlstate 也不能关闭

【讨论】:

以上是关于ASP.NET,用户控件和 ViewState 丢失了正确的数据,尝试进入用户控件事件的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET ViewState详解

Telerik ASP.NET Ajax RadGrid 在 MVC 和 ViewState 中?

asp.net服务器控件的视图状态viewstate

asp.net c# MVC:没有 ViewState 我该如何生活?

ViewState的用法(转载的)

转载ViewState的用法