VIEWSTATE是个好东西,是asp.net的一大创举,给web开发带来了极大的便利,然后这种便利是一种双刃剑,尤其是在前台页面,大多数前台页面都是用来展示列表数据,和用户交互的地方现在大都采用ajax代替了,在这种情况下VIEWSTATE已经没有什么用武之地了。因此禁用VIEWSTATE是必须的。

一般禁用VIEWSTATE的方法就是在页面顶端的page指令中加上EnableViewState="false",但是很不幸页面中还是用少量的顽固分子

如何将这个剩余的VIEWSTATE清理干净呢,如果稍微留心一下就会注意到当我们新建一个aspx页面的时候,页面的html代码中默认是有一个runat="server" 的form,恩,现在就要考虑一下form的作用,他是用来提交表单的,但是大多数前台页面更本不用提交一个表单,既是需要的地方,在ajax盛行的年代,我们也早就不用原始的把一个页面post到服务器端了。那么按这样说,这个form根本就没有用的。那好,现在我们就把这个form去掉,这样再来看我们页面的html代码,你会惊奇的发现,页面很干净,没有了form,那“障眼”的VIEWSTATE也不见了(既是你没有在顶端的page指令中加上EnableViewState="false")!

删除了带runat="server" 的form之后,在使用控件的时候会有很多限制,比如这是如果你放一个TextBox到页面,然后运行页面,这是页面会报错:“类型“TextBox”的控件“TextBox1”必须放在具有 runat=server 的窗体标记内。” 除了TextBox,还有哪些控件也是必须放在runat=server的窗体内呢?如果实验几个控件,你就会发现,凡是能够被表单(form)提交的(post)html元素的控件都是必须放在具有 runat=server 的窗体标记内。我们知道asp.net控件最终还是要生成html元素的,不管再复杂的控件。比如一个TextBox控件在页面中生成的就是<input  type="text"/>的html元素,而这个输入框是可以被form提交的。数据控件中只有RepeaterListViewDataList  可以没有带runat="server" 的form,当然在三个控件的模板里面一样不能出现类似TextBox的控件。前台展示列表的话Repeater足矣!

这样当你打开博客园.NET频道沪江网店 查看它们的HTML源码的时候就不会惊讶为什么找不到VIEWSTATE呢?难道是生成了静态页面,等等。。。

让VIEWSTATE从页面中完全消失(小技巧)的更多相关文章

  1. ACM 做题过程中的一些小技巧。

    ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long l ...

  2. C语言中的调试小技巧

    C语言中的调试小技巧 经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的 ...

  3. jquery获取json对象中的key小技巧

    jquery获取json对象中的key小技巧 比如有一个json var json = {"name" : "Tom", "age" : 1 ...

  4. ES6中常用的小技巧,用了事半功倍哦

    ES6中常用的小技巧,如果能在实际项目中能使用到,必定事半功倍: 1. 强制要求参数 ES6提供了默认参数值机制,允许你为参数设置默认值,防止在函数被调用时没有传入这些参数. 在下面的例子中,我们写了 ...

  5. C#中使用swagger小技巧

    C#中使用swagger小技巧 swaggerUI显示的接口内容主要用于开发阶段便于与前端联调,不适合发布到对外的站点. 有以下两种方式,让接口不显示在SwaggerUI中 1.使用属性 [ApiEx ...

  6. asp.net mvc route 中新发现的小技巧

    在发现这个小技巧之前,我经常被某些问题困扰,我们以博客园为例 1:是分类名称 2:是分类url 3:点击分类,进入的页面,要显示分类的名称 4:点击分类,进入的页面,要用分类相关参数 在日常web的开 ...

  7. RS开发中的一些小技巧[不定期更新]

    从9月份一直忙到了现在,项目整体的改版工作也完成了十有八九了,有些事情只有你自己真正的做了,你才能明白:哦,原来还可以这个样子,这样做真的好了很多呢,接下来我就分享一些最近遇到的RS开发的一些小技巧, ...

  8. CSS中的一下小技巧1之CSS3三角形运用

    使用CSS3实现三角形: 在前端页面中有很多时候会遇到需要三角形图案的时候,以前不知道可以用CSS3实现三角形的时候,一般都是叫UI把三角形图案切出来. 后来知道原来可以用CSS3实现三角形,可是用过 ...

  9. javascrip中的confirm小技巧

    jsp页面中的一个标签: <a href="javascript:void(0)" onclick="confirmDelete('<%=request.ge ...

随机推荐

  1. Java for LeetCode 033 Search in Rotated Sorted Array

    Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...

  2. std::map常用方法

    map<string, int> Employees; Employees["Mike C."] = 12306; Employees.insert(make_pair ...

  3. 有关PowerShell脚本你必须知道的十个基本概念

    1.PS1文件 一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,对于被视为PowerShell脚本的文本文件,它的文件名 ...

  4. GCD的基本使用

    // // ViewController.m // gcd队列与函数 // // Created by 诠释 on 15/9/3. // Copyright (c) 2015年 诠释. All rig ...

  5. C++ STL算法系列4---unique , unique_copy函数

     一.unique函数 类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序 ...

  6. 字典树(Trie树)的实现及应用

    >>字典树的概念 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树.与二叉查找树不同,Trie树的 ...

  7. js 默认行为取消

    js 默认行为取消   可以简单的  return false;   看需求吧 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transit ...

  8. JS中使用EL表达式

    转自:http://blog.csdn.net/monkeyking1987/article/details/17146951 分两种情况 1. JS代码在JSP页面中, 这可以直接使用EL表达式. ...

  9. 【转】reduce端缓存数据过多出现FGC,导致reduce生成的数据无法写到hdfs

    转自  http://blog.csdn.net/bigdatahappy/article/details/41726389 转这个目的,是因为该贴子中调优思路不错,值得学习 搜索推荐有一个job,1 ...

  10. FZU2219 StarCraft(哈夫曼树)

    一个工人可以变成两个工人,这样可以画出一颗二叉树,那么就是在叶子上建的建筑. 问题的时间花费,可以看作是这颗二叉树中各个叶子的深度*k+叶子对应建筑耗费时间中的最大值. 容易想到,类似哈夫曼树一样,从 ...