首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js 获取viewstate

ViewState 是 ASP.NET Web Forms 中的一个关键概念,用于在页面回发(postback)之间保持控件的状态。以下是关于 ViewState 的基础概念、优势、类型、应用场景以及常见问题的详细解答。

基础概念

ViewState 是一种机制,用于在服务器端控件之间持久化数据。它通过在页面中嵌入一个隐藏字段(__VIEWSTATE)来实现,该字段包含了页面及其控件的状态信息。

优势

  1. 状态保持:ViewState 允许在页面回发之间保持控件的状态,无需重新设置。
  2. 简化开发:开发者无需手动处理控件状态的保存和恢复,提高了开发效率。

类型

ViewState 主要有以下几种类型:

  1. Intrinsic ViewState:默认情况下,ASP.NET 控件会自动处理其状态。
  2. Custom ViewState:开发者可以自定义 ViewState 的存储和恢复逻辑。

应用场景

ViewState 广泛应用于需要保持状态的 Web Forms 页面,特别是在表单提交、动态控件生成等场景中。

获取 ViewState 的 JavaScript 示例

要在客户端使用 JavaScript 获取 ViewState,可以通过访问隐藏字段 __VIEWSTATE 来实现。以下是一个示例代码:

代码语言:txt
复制
// 获取 __VIEWSTATE 隐藏字段的值
var viewState = document.getElementById('__VIEWSTATE').value;

console.log('ViewState:', viewState);

常见问题及解决方法

问题1:ViewState 过大导致页面加载缓慢

原因:ViewState 包含了大量数据,导致页面加载时间增加。

解决方法

  1. 减少不必要的数据存储:只存储必要的控件状态。
  2. 启用 ViewState 压缩:在 Web.config 中配置 ViewState 压缩。
代码语言:txt
复制
<pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
  <system.web>
    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
      <system.web>
        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
          <system.web>
            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
              <system.web>
                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                  <system.web>
                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                      <system.web>
                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                          <system.web>
                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                              <system.web>
                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                  <system.web>
                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                      <system.web>
                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                          <system.web>
                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                              <system.web>
                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                  <system.web>
                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                      <system.web>
                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                          <system.web>
                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                              <system.web>
                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                  <system.web>
                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                      <system.web>
                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                          <system.web>
                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                              <system.web>
                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                  <system.web>
                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                      <system.web>
                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                          <system.web>
                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                              <system.web>
                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                  <system.web>
                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                      <system.web>
                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                          <system.web>
                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                              <system.web>
                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                  <system.web>
                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                      <system.web>
                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                          <system.web>
                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                              <system.web>
                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                 <system.web>
                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                      <system.web>
                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionType="Never" enableViewState="true">
                                                                                                                                          <system.web>
                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                              <system.web>
                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                  <system.web>
                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                      <system.web>
                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                          <system.web>
                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                              <system.web>
                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                  <system.web>
                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                      <system.web>
                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                          <system.web>
                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                              <system.web>
                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                  <system.web>
                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                      <system.web>
                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                          <system.web>
                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                    <pages enableialized="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                              <system.web>
                                                                                                                                                                                                                                                                                                                                                                <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                                  <system.web>
                                                                                                                                                                                                                                                                                                                                                                    <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                                      <system.web>
                                                                                                                                                                                                                                                                                                                                                                        <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
                                                                                                                                                                                                                                                                                                                                                                          <system.web>
                                                                                                                                                                                                                                                                                                                                                                            <pages enableViewStateMac="false" viewStateEncryptionMode="Never" enableViewState="true">
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

viewstate解密

看完之后,觉得能不用viewstate就不用,再者像这样viewstate[“a”]=”b”;这种简单的赋值是没有什么关系的,它生成的树是很小的,altas一定是用js修改了viewstate的,但方法肯定是加密再加密的...StateApplication来管理Session,实际上就是一个辅助进程,处理Session到期、创建的特殊请求,在收到每一次请求的时候,辅助进程就会调用状态服务器(可以通过Web.config设置不同的状态服务器)来获取...; //这里保存我们自己的 return states; //返回重新包装后的保存对象 } 获取的时候: protected override void...的方式与Save差不多,只是Load的时候会从savedState中获取子控件的索引来依次递归子控件的LoadRecursive()方法,这样才能保证正确的把保存的数据传给子控件。...3、我们通过很简单的方式就可以把ViewState里面的值获取出来,我们上面讨论了一些,虽然没有把解析的代码写出来,但是利用LosFormatter可以得到ViewState反序列化后的对象,那么要解析出来简直是易如反掌

1K30
  • ASP.Net ViewState的实现

    StateApplication来管理Session,实际上就是一个辅助进程,处理Session到期、创建的特殊请求,在收到每一次请求的时候,辅助进程就会调用状态服务器(可以通过Web.config设置不同的状态服务器)来获取...;        //这里保存我们自己的        return states; //返回重新包装后的保存对象     }     获取的时候:     protected override...SaveViewState()方法来保存数据的话,那么控件树的结构就会丢失,那么Load的时候就没办法还原了,实际上在SaveViewStateRecursive方法中大致的代码是这样:     [1] 获取控件自己的...   Load的方式与Save差不多,只是Load的时候会从savedState中获取子控件的索引来依次递归子控件的LoadRecursive()方法,这样才能保证正确的把保存的数据传给子控件。   ...3、我们通过很简单的方式就可以把ViewState里面的值获取出来,我们上面讨论了一些,虽然没有把解析的代码写出来,但是利用LosFormatter可以得到ViewState反序列化后的对象,那么要解析出来简直是易如反掌

    1K30

    网页优化系列三:使用压缩后置viewstate

    Asp.net中的服务器控件都启用了viewstate,虽然方便了开发人员,但页面大小及性能上确实有所影响,对于无需viewstate的控件及页面可以直接把控件或页面的viewstate禁用掉,但对于必须的...搞定压缩部分,当然都解压部分啦,回传时通过LoadPageStateFromPersistenceMedium方法获取viewstate,所以继续重写吧 1 protected override...ms.Close(); 37 ms.Dispose(); 38 39 return resultByte; 40 } 1.从__MyViewState中获取...(除了自定义HttpModule啦),base.Render()会将页面控件所生成的html代码输入到HtmlTextWriter 对象中,通过它就可以得到页面最终的html代码了,接着就用正则表达式获取...name="_MyViewState"... , 当postback时在LoadPageStateFromPersistenceMedium时因隐藏控件在form之外,所以无法用form["参数命"]来获取

    77060

    前端如何获取当前时间_js 获取年份

    前端js获取当前时间的方法: var time = new Date(); time.getYear(); //获取当前年份 time.getFullYear(); //获取完整的年份(4位,1970...time.getMonth(); //获取当前月份(0-11,0代表1月) time.getDate(); //获取当前日(1-31) time.getDay(); //获取当前星期X(0-6,0代表星期天...) time.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) time.getHours(); //获取当前小时数(0-23) time.getMinutes(); //...获取当前分钟数(0-59) time.getSeconds(); //获取当前秒数(0-59) time.getMilliseconds(); //获取当前毫秒数(0-999) time.toLocaleDateString...(); //获取当前日期 var mytime=time.toLocaleTimeString(); //获取当前时间 time.toLocaleString( ); //获取日期与时间 为了让大家有一个更感官的了解

    34.1K20

    JS获取当前网址信息

    通过window.location对象获取对应的属性 1、设置或获取对象指定的文件名或路径(pathname) window.location.pathname 2、设置或获取整个 URL 为字符串(href...) window.kk 3、设置或获取与 URL 关联的端口号码(port) window.location.port 4、设置或获取 URL 的协议部分(protocol) window.location.protocol...设置或获取 href 属性中在井号“#”后面的分段(hash) window.location.hash 设置或获取 location 或 URL 的 hostname 和 port 号码(host)...window.location.host 设置或获取 href 属性中跟在问号后面的部分(search) window.location.search 获取变量的值(截取等号后面的部分) window.location.search.substring...2、通过正则表达式准确的获取我们需要的参数。

    13.8K30
    领券