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动态加载类在功能模块开发中的作用

    Java中我们一般会使用new关键字实例化对象然后调用该对象所属类提供的方法来实现相应的功能,比如我们现在有个主类叫Web类这个类中能实现各种方法,比如用户注册.发送邮件等功能,代码如下: /* * ...

  2. Windows远程桌面连接如何直接使用剪贴板功能

    连接到Windows Server服务器时,通常使用远程桌面连接,那么如果有些时候按照习惯复制本地文件到远程服务器发现无法粘贴怎么办,这个时候稍微设置一下就OK了, 首先重新运行远程桌面连接,在登陆界 ...

  3. 一、HTML和CSS基础--网页布局--网页简单布局之结构与表现原则

    结构.表现和行为分离,不仅是一项技术,更主要的是一种思想,当我们拿到一个网页时,先考虑设计图中的文字内容和内容模块之间的关系,重点放在编写html结构和语义化,然后考虑布局和表现形式.,减少HTML与 ...

  4. javac编译提示编码GBK的不可映射字符

    使用命令行javac命令编译java文件, 提示错误:编码GBK的不可映射字符. 在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操 ...

  5. C# 编程音量控制

    public FrmVoice() { InitializeComponent(); } [DllImport("user32.dll", EntryPoint = "S ...

  6. Java Hour 24 JDBC

    有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. 虽然现在都不会直接写JDBC 了,但是了解毕竟是需要的.当然这个和ADO.Ne ...

  7. Maven跳过test打包

    1. cd到当前目录 2. mvn install -Dmaven.test.skip=true   参考:http://blog.csdn.net/symgdwyh/article/details/ ...

  8. 对于JavaScript的函数.NET开发人员应该知道的11件事

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天小感冒今天重感冒,也不能长篇大论.如果你是.NET开发人员,在进入前端开发领域的时候,对 ...

  9. JAVA 获取web文件的相对路径

    转自:http://wwwdd2315.blog.163.com/blog/static/66661889201091953350298/ 在JAVA文件中获取该项目的相对路径1.基本概念的理解 绝对 ...

  10. BZOJ 3224: Tyvj 1728 普通平衡树 treap

    3224: Tyvj 1728 普通平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作:1. 插入x数2. 删除x数(若有多个相同的数,因只删除 ...