如何在客户端JavaScript或JQuery中访问ViewState变量

11

是否可以在ASP.NET Web应用程序中的客户端JavaScript或jQuery函数中访问ViewState变量?如果可以,如何做到?

1个回答

11

第一种解决方案:

您可以使用属性将代码后端中的任何变量传递到客户端。 在代码后端定义一个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中给属性赋值,然后使用this获取该值:

<% = 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"


直接在客户端使用它们的方式不可行吗? - user3853187
这是可能的,但不是一种干净的方式。所有的 ViewState 都保存在由 ASP.NET 自动创建的隐藏字段中,您可以找到该字段并读取数据。您可以在页面的源代码中找到此名称和 ID 的字段:__VIEWSTATE - Moshtaf
没有像服务器端那样的方法。 - Moshtaf
那么会话状态变量呢? - user3853187
在VB中,只需使用alert('<% = Session("sessionName") %>');,在C中使用alert('<% = Session["sessionName"] %>');即可轻松处理会话。 - Moshtaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接