让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 ...
随机推荐
- java将白色背景图片转换成无色
package com.cxf.dao; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buffer ...
- 用例视图 Use Case View(rose)
找开Rose工具,选择用例视图 Use Case View 先看看这个视图下面都有哪些工具,都能做一些什么: 下面详细说一下: 用例视图下面有工具: 一:选择工具 二:文本框Text Box 三:注 ...
- .net学习笔记---HttpResponse类
HttpReponse是服务器接收到浏览器的请求后,处理返回结果常用的一个类. 一.属性 Buffer 获取或设置一个值,该值指示是否缓冲输出并在处理完整个响应之后发送它. BufferOutpu ...
- phpStorm支持CodeIgniter代码提示/自动完成
下载这个文件phpstorm-ci-ac 或者去github下载解压里面的三个文件到ci根目录下然后找到这三个文件 system\core\Controller.phpsystem\core\Mode ...
- Mongodb安装(Mac平台)
1安装: sudo brew install mongodb 2 启动MongoDb sudo mongod —config /usr/local/etc/mongod.conf 3.登录mongo ...
- Mac OS X 上的安装Lisp开发环境
到网站:https://common-lisp.net/project/lispbox/ 下载lispbox 解压下载下来的包,找到Emacs 测试: 我们也可以使用homebrew来安装lisp的解 ...
- hdu 2184 01背包变形
转自:http://blog.csdn.net/liuqiyao_01/article/details/8753686 题意:这是又是一道01背包的变体,题目要求选出一些牛,使smartness和fu ...
- 16.2.13 asp.net 学习随笔
using System.Data.SqlClient;//连接数据库必须的 using System.Configuration; CommandType所在的命名空间 system.data; P ...
- cf 333b
G - Chips Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit S ...
- oracle创建临时表没有权限
执行下面: grant create any table to 用户名称