【发布时间】:2014-08-05 19:38:01
【问题描述】:
这是否可以在 asp.net Web 应用程序的客户端 javascript 或 jquery 函数中访问 ViewState 变量?如果是那怎么办?
【问题讨论】:
标签: javascript jquery asp.net viewstate
这是否可以在 asp.net Web 应用程序的客户端 javascript 或 jquery 函数中访问 ViewState 变量?如果是那怎么办?
【问题讨论】:
标签: javascript jquery asp.net viewstate
第一个解决方案:
您可以使用属性将任何变量从代码隐藏传递到客户端。
在代码隐藏中定义 Public 属性:
C#:
public int prtPropertyName {
get { return ViewState("PropertyName"); }
set { ViewState("PropertyName") = value; }
}
VB:
Public Property prtPropertyName As Integer
Get
Return ViewState("PropertyName")
End Get
Set(value As Integer)
ViewState("PropertyName") = value
End Set
End Property
给属性赋值,然后在javascript中使用这个值:
<% = prtPropertyName %>
第二种解决方案:
将 ViewState 的值放入隐藏字段中,并在客户端读取隐藏字段值:
ViewState("viewStateName") = "This is ViewState value"
Page.ClientScript.RegisterHiddenField("hfHiddenFieldID", ViewState("viewStateName"))
Javascript:
var strValue = document.getElementById("hfHiddenFieldID");
第三种解决方案:
这个不是很清楚,但是所有ViewStates都保存在一个由ASP.NET自动创建的隐藏字段中,您可以找到该字段并读取数据。您可以在具有此名称和 id 的页面的源代码中找到此字段:name="__VIEWSTATE" id="__VIEWSTATE"。
【讨论】:
ViewStates 都保存在由 ASP.NET 自动创建的隐藏字段中,您可以找到该字段并读取数据。您可以在具有此名称和 id 的页面的源代码中找到此字段:__VIEWSTATE。
alert('<% = Session("sessionName") %>');,在 C 中使用 alert('<% = Session["sessionName"] %>');。