让VIEWSTATE从页面中完全消失(小技巧)
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提交的。数据控件中只有Repeater,ListView,DataList 可以没有带runat="server" 的form,当然在三个控件的模板里面一样不能出现类似TextBox的控件。前台展示列表的话Repeater足矣!
这样当你打开博客园.NET频道,沪江网店 查看它们的HTML源码的时候就不会惊讶为什么找不到VIEWSTATE呢?难道是生成了静态页面,等等。。。
让VIEWSTATE从页面中完全消失(小技巧)的更多相关文章
- ACM 做题过程中的一些小技巧。
ACM做题过程中的一些小技巧. 1.一般用C语言节约空间,要用C++库函数或STL时才用C++; cout.cin和printf.scanf最好不要混用. 2.有时候int型不够用,可以用long l ...
- C语言中的调试小技巧
C语言中的调试小技巧 经常看到有人介绍一些IDE或者像gdb这样的调试器的很高级的调试功能,也听人说过有些牛人做工程的时候就用printf来调试,不用特殊的调试器.特别是在代码经过编译器一些比较复杂的 ...
- jquery获取json对象中的key小技巧
jquery获取json对象中的key小技巧 比如有一个json var json = {"name" : "Tom", "age" : 1 ...
- ES6中常用的小技巧,用了事半功倍哦
ES6中常用的小技巧,如果能在实际项目中能使用到,必定事半功倍: 1. 强制要求参数 ES6提供了默认参数值机制,允许你为参数设置默认值,防止在函数被调用时没有传入这些参数. 在下面的例子中,我们写了 ...
- C#中使用swagger小技巧
C#中使用swagger小技巧 swaggerUI显示的接口内容主要用于开发阶段便于与前端联调,不适合发布到对外的站点. 有以下两种方式,让接口不显示在SwaggerUI中 1.使用属性 [ApiEx ...
- asp.net mvc route 中新发现的小技巧
在发现这个小技巧之前,我经常被某些问题困扰,我们以博客园为例 1:是分类名称 2:是分类url 3:点击分类,进入的页面,要显示分类的名称 4:点击分类,进入的页面,要用分类相关参数 在日常web的开 ...
- RS开发中的一些小技巧[不定期更新]
从9月份一直忙到了现在,项目整体的改版工作也完成了十有八九了,有些事情只有你自己真正的做了,你才能明白:哦,原来还可以这个样子,这样做真的好了很多呢,接下来我就分享一些最近遇到的RS开发的一些小技巧, ...
- CSS中的一下小技巧1之CSS3三角形运用
使用CSS3实现三角形: 在前端页面中有很多时候会遇到需要三角形图案的时候,以前不知道可以用CSS3实现三角形的时候,一般都是叫UI把三角形图案切出来. 后来知道原来可以用CSS3实现三角形,可是用过 ...
- javascrip中的confirm小技巧
jsp页面中的一个标签: <a href="javascript:void(0)" onclick="confirmDelete('<%=request.ge ...
随机推荐
- cocos2dx创建sprite的多种方法
方法一 最常用,也是最简单的一种方法 CCSprite *bg=CCSprite::create(,,,)); bg->setAnchorPoint(ccp(,)); bg->setPos ...
- Linux Top
http://www.it165.net/os/html/201402/7262.html
- hdu 1011 树形dp
题意:是有n个洞组成一棵树,你有m个士兵,你从1号房间开始攻打,每个洞有a个"bugs"和b的价值.你的一个士兵可以打20 个"bugs",为了拿到这个洞的价值 ...
- 关于android LinearLayout的比例布局(转载)
关于android LinearLayout的比例布局,主要有以下三个属性需要设置: 1,android:layout_width,android:layout_height,android:layo ...
- C++的那些事:表达式与语句
表达式 1,应该把函数调用当作是一种运算符,这种运算符对参与运算的对象没有数量限制. 2,关于“左值(lvalue)”和“右值(rvalue)”可以做一个简单的归纳:当一个对象被用作右值的时候,用的是 ...
- Codeforces Gym 100637A A. Nano alarm-clocks 前缀和处理
A. Nano alarm-clocks Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100637/p ...
- VMware安装、配置CentOS
出处:http://www.cnblogs.com/jlily/ 1. 准备CentOS安装镜像文件 官网下载地址:http://www.centos.org/download/ 官方有三个版本:DV ...
- 分享Kali Linux 2016.2第36周镜像虚拟机
分享Kali Linux 2016.2第36周镜像虚拟机 9月9日,Kali Linux官方发布Kali Linux 2016.2周更新镜像.今天以64位镜像安装了一个虚拟机,分享给大家.该虚拟机 ...
- Xamarin Android项目运行失败
Xamarin Android项目运行失败 错误信息:Build Failed: MonoDroid does not support running the previous version. P ...
- Vijos 1180 (树形DP+背包)
题目链接: https://vijos.org/p/1180 题目大意:选课.只有根课选了才能选子课,给定选课数m, 问最大学分多少. 解题思路: 树形背包.cost=1. 且有个虚根0,取这个虚根也 ...