请帮助解决这个问题。 Viewstate允许在app_code中使用吗?
我在app_code中有这段代码,但似乎无效。视图状态始终设置为空。如何在我的App_Code文件夹中的类中保持ViewState中的值?
Public Property GridViewSortDirection() As String
Get
Return IIf(ViewState("SortDirection") = Nothing, "ASC", ViewState("SortDirection"))
End Get
Set(ByVal value As String)
ViewState("SortDirection") = value
End Set
End Property
这是设置GridviewSortDirectio
值的代码Public Function GetSortDirection() As String
Select Case GridViewSortDirection
Case "ASC"
GridViewSortDirection = "DESC"
Case "DESC"
GridViewSortDirection = "ASC"
End Select
Return GridViewSortDirection
End Function
然后在页面(test.aspx.vb)中调用getSortDirection
答案 0 :(得分:1)
如果您在浏览器中查看源代码,您会看到很多乱码,只需搜索VIEWSTATE即可看到它。这很重要,因为HTTP请求是无状态的,这意味着浏览器向服务器发出的每个请求都会离开旧页面并占用新页面。
在回发期间,这是一个问题,因为您基本上离开了页面并获得了一个干净的新页面,它恰好是同一页面。需要有一种方法来保存页面的状态,例如下拉选项或文本框输入,这是通过ViewState完成的。你看到的这些信息是用来维持状态的编码数据。
当您刷新浏览器窗口(顶部的按钮)时,ViewState将丢失,数据将恢复为原始状态。
App_Code是存储在服务器上的类,与页面无关。这就是App_Code中没有ViewState的原因。如果要在页面外维护状态,则Session
将数据存储在服务器上,直到您关闭浏览器窗口。在您的情况下,将数据作为参数传递
Public Function GetSortDirection(direction) As String
Select Case direction
Case "ASC"
Return "DESC"
Case "DESC"
Return "ASC"
End Select
End Function
如需深入解释,请阅读MSDN article