【问题标题】:How to access ViewState variable in Client side Javascript or JQuery如何在客户端 Javascript 或 JQuery 中访问 ViewState 变量
【发布时间】:2014-08-05 19:38:01
【问题描述】:

这是否可以在 asp.net Web 应用程序的客户端 javascript 或 jquery 函数中访问 ViewState 变量?如果是那怎么办?

【问题讨论】:

    标签: javascript jquery asp.net viewstate


    【解决方案1】:

    第一个解决方案:

    您可以使用属性将任何变量从代码隐藏传递到客户端。 在代码隐藏中定义 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
    • 不,没有办法像服务器端那样。
    • 那么会话状态变量呢?
    • 对于会话,只需在 VB 中使用 alert('&lt;% = Session("sessionName") %&gt;');,在 C 中使用 alert('&lt;% = Session["sessionName"] %&gt;');
    猜你喜欢
    • 2015-03-21
    • 2012-06-10
    • 1970-01-01
    • 2017-04-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多