ASP.NET的状态管理
为什么要状态管理
B/S与C/S两种架构的有着完全不同的运行机制。C/S基本上所有的软件功能都在客户端(Client)中实现(所以C/S也称为胖客户端架构),服务器端(Server)只提供基础服务,最为典型的是数据库服务提供数据服务。而B/S架构主要的功能在服务端(Server)实现,客户端的浏览器(Browser)只接受用户输入和数据展现。C/S架构的功能都在客户端的一个进程中完成,客户端与服务器端的连接基本上保持同步,只需要记录两者的连接状态而不存在其他的状态要管理。
而在B/S架构中,客户端和服务之间的连接并不保持同步。我们来看看B/S架构客户端与服务器端的交互方式。客户端浏览器每次将网页发送到服务器时,服务器都会创建网页类的一个新的实例。在传统的Web编程中(指那些没有提供内置的状态管理机制的B/S开发平台),这通常意味着在每一次往返过程中,与该页及该页上的控件相关联的信息都会丢失。如用户将信息输入到页面的文本框中,该信息从浏览器传到服务器的往返过程中将丢失,所以状态管理机制成为B/S架构的一个重点。如果我们要深入学习B/S结构,研究其状态管理机制成为必经之路而无法逾越,本文就来探讨当前市场最为流行的B/S架构——ASP.NET框架的状态管理机制。
什么是ASP.NET的状态管理
那么什么是B/S架构的状态管理呢?说白了就是存储页面请求期间的信息,比如购物网站的客户信息或购物车的内容等等。为了解决传统Web编程的固有限制,减少Web开发者的工作量和工作难度,提高开发效率,ASP.NET平台提供了一系列状态选项,使开发者可以按页保留数据和在整个Web应用程序范围内保留数据。
我们也知道在大型的网络应用中,同一个网站可能部署到多台服务器上,针对这种情况,ASP.NET也提供了分布式状态管理功能,使我们能够管理运行在数台服务器上的同一个Web应用程序的多个实例的状态信息。
在Web应用的运行过程中,ASP.NET可以保存和管理Web应用级别(Application)、会话级别(Session)、页面级别(Page)、用户特定和开发人员自定义的信息。具体的来说,ASP.NET提供了如下状态管理选项:
1. 视图状态
2. 控件状态
3. 隐藏域
4. Cookie
5. &nb
相关文档:
ASP.NET编程规范之命名规范都有哪些呢?具体又有什么内容呢?让我们开始吧:
ASP.NET编程规范之命名规范1.按钮ID命名:
btn+按钮操作功能(如btnSave)
ASP.NET编程规范之命名规范2.其它控件:
I.与数据操作相关:其ID<.SPAN>为相应的字段名称,如果有多个控件对应一个字段,则按以下规范命名:
字段名+&rdqu ......
客户端传送数据到服务器端有三种方法:
1.form
2.querystring
3.cookie
利用这些方式取得的数据在服务器端都是字典集合,如果要精确取到某个集合的值,则直接使用对应的集合的名称,三种方式对应的集合如下:
1.form:request.form
2.querystring:request.querystring
3.cookie:request.cookie
利用request.p ......
ASP.NET打开新窗口方法一:
Response.Write(" <script language=\"javascript\">window.open('aaa.aspx','新窗口,\"toolbar=yes,location=no,directories=yes,status=yes,menubar=yes,resizable=yes,scrollbars=yes\"); </script>");
这种方式代码每次是生成在页面最顶端
ASP.NET打开新窗口方法二:
stri ......
同样是一篇转帖的文章,
原文: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-2-modelmetadata.html
着重介绍了ASP.NET MVC2 里面的 ModelMetadata 类
ASP.NET MVC 2 Templates, Part 2: ModelMetadata
Series Index
Part 1: Introduction
Part 2: ModelMetadata
Understanding You ......
ASP.net 仿QQ弹出窗口
〔转〕http://hi.baidu.com/liyukun8203/blog/item/d9244dfcdb78e388b901a019.html
最近在做内部管理,需要用到这个东西来提醒,所以就把它做成一个类,直接调用,满方便的.贴一下代码,大家看一下
Code
1 using System;
2 using System.Web;
3 using System.Collections.Generic;
4 using Sy ......