ASP.NET - 视图状态概述

4、ASP.NET架构与Web表单开发全解析 本博客深入解析了ASP.NET的架构和Web表单开发的核心概念,包括ASP.NET运行时的工作机制、页面状态管理、Web配置文件的使用以及HTML表单的处理流程。同时,还探讨了服务器端控件与客户端控件的区别、视图状态与会话状态的应用以及页面生命周期的关键阶段。通过实际示例展示了如何处理表单数据并返回结果,并总结了ASP.NET开发的最佳实践,帮助开发者构建高效、可扩展的Web应用程序。 阅读详情

 

      视图状态是 ASP.NET 页框架用于在往返过程之间保留页和控件值的方法。在呈现页的 HTML 标记时,必须在回发过程中保留的页和值的当前状态将被序列化为 Base64 编码字符串。然后,此信息将被放入一个或多个视图状态隐藏字段。

 

1、方案

视图状态由 ASP.NET 页框架自动用于保存在各个回发之间必须保留的信息。此信息包括控件的任何非默认值。

您还可以使用视图状态来存储特定于页的应用程序数据。

 

2、功能

视图状态是 ASP.NET 页中的存储库,可以存储必须在回发过程中保留的值。页框架使用视图状态在各个回发之间保存控件设置。

可以在您自己的应用程序中使用视图状态完成以下工作:

·在各个回发之间保存值,而不将这些值存储在会话状态或用户配置文件中。

·存储您定义的页或控件属性的值。

·创建一个自定义视图状态提供程序,以便将视图状态信息存储在 SQL Server 数据库或其他数据存储区中。

例如,您可以将信息存储在视图状态中,这样在下次将该页发送到服务器时,代码便可以在页加载事件过程中访问这些信息。

 

3、背景

Web 应用程序是无状态的。每次从服务器请求页时,都会创建网页类的一个新实例。这通常意味着在每次往返过程中会丢失该页及其控件中的所有信息。例如,默认状态下,如果用户将信息输入到 HTML 网页上的文本框中,该信息会发送到服务器。但是,该信息不会在响应中返回到浏览器。

为了克服 Web 编程的这一固有的局限性,ASP.NET 页框架包含几种状态管理功能,可以在往返过程之间将页和控件值保存到 Web 服务器。其中一种功能便是视图状态。

默认情况下,ASP.NET 页框架使用视图状态在往返过程之间保存页和控件值。在呈现页的 HTML 时,必须在回发过程中保留的页和值的当前状态将被序列化为 Base64 编码字符串。然后,它们将被放入页中的一个或多个隐藏字段。

您可以在代码中使用页的 ViewState 属性访问视图状态。ViewState 属性是一个包含键/值对(其中包含视图状态数据)的字典。

      安全说明: 恶意用户可以很容易地查看和修改隐藏域的内容。

      通过实现自定义的 PageStatePersister 类以存储页数据,您可以更改默认行为并将视图状态存储到另一个位置(如 SQL Server 数据库)。

 

4、使用视图状态的注意事项

视图状态提供了特定 ASP.NET 页的状态信息。如果需要在多个页上使用信息,或者如果需要在对网站的多次访问之间保存信息,必须使用其他方法来维护状态。您可以使用应用程序状态、会话状态或配置文件属性。

视图状态信息被序列化为 XML,然后使用 base-64 编码机制进行编码,这可能会生成大量数据。将页发送到服务器时,视图状态的内容会作为页回发信息的一部分进行发送。如果视图状态包含大量信息,则会影响页的性能。请使用应用程序的典型数据测试页性能,以确定视图状态的大小是否会导致性能问题。

如果不必存储单个控件的控件信息,则可以禁用控件的视图状态。如果页上的某个控件在每次回发时从数据存储区进行刷新,则可以关闭该控件的视图状态以减少视图状态的大小。例如,可以关闭 GridView 控件的视图状态。

 

说明: 即使您显式关闭视图状态,也仍会将隐藏字段发送到浏览器,以指示该页正在回发信息。

另一个注意事项是,如果隐藏字段中的数据量过大,则某些代理和防火墙将禁止访问包含这些数据的页。由于最大允许数量可能随所实现的防火墙和代理的不同而不同,因此大的隐藏字段可能会导致间歇性问题。如果存储在 ViewState 属性中的数据量超出了在页的 MaxPageStateFieldLength 属性中指定的值,则页会将视图状态拆分为多个隐藏字段。这可减小单个隐藏字段的大小,使其大小不会超过防火墙所允许的上限。

某些移动设备根本不允许使用隐藏字段。因此,视图状态对于这些设备无效。

 

5、控件状态

除视图状态以外,ASP.NET 还支持控件状态。页使用控件状态来保留必须在回发之间保留的控件信息,即使已为页或某个控件禁用视图状态也是如此。控件状态与视图状态类似,也存储在一个或多个隐藏字段中。

 

6、将值保存在视图状态中

您可以使用页的 ViewState 属性(该属性公开一个字典对象)来访问视图状态信息。可以使用此字典存储自定义值。一个典型用法是存储您在页中定义的自定义属性的值。

由于视图状态是作为隐藏字段发送的,因此直到该页的 PreRenderComplete 事件发生之前,都可以对视图状态进行更改。在将页呈现到浏览器之后,便无法保存对视图状态所做的更改。

如果用户查看网页的源并可以对 base-64 编码字符串进行解码,则可以看到隐藏视图状态字段中的信息。这可能会产生安全问题。

说明: 若要使用 ViewState 属性 (Property),ASP.NET 网页必须有一个具有 runat="server" 属性 (Attribute) 的 form 元素。

若要将值保存到视图状态,请创建一个包含要保存的值的新项,并将该项添加到视图状态字典中。下面的示例演示一个 ASP.NET 网页,该网页包含用于将一个字符串和一个整数值保存在视图状态中的代码。

<%@ Page Language="VB" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  ' Sample ArrayList for the page.

  Dim PageArrayList As ArrayList

 

  Function CreateArray() As ArrayList

    ' Create a sample ArrayList.

    Dim result As ArrayList

    result = New ArrayList(4)

    result.Add("item 1")

    result.Add("item 2")

    result.Add("item 3")

    result.Add("item 4")

    Return result

  End Function

 

  Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)

    If (Me.ViewState("arrayListInViewState") IsNot Nothing) Then

      PageArrayList = CType(Me.ViewState("arrayListInViewState"), ArrayList)

    Else

      ' ArrayList isn't in view state, so it must be created and populated.

      PageArrayList = CreateArray()

    End If

    ' Code that uses PageArrayList.

  End Sub

 

  Sub Page_PreRender(ByVal sender As Object, ByVal e As EventArgs)

    ' Save PageArrayList before the page is rendered.

    Me.ViewState.Add("arrayListInViewState", PageArrayList)

  End Sub

</script>

 

<html  >

<head runat="server">

    <title>View state sample</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    </div>

    </form>

</body>

</html>

 

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

  // Sample ArrayList for the page.

  ArrayList PageArrayList;

 

  ArrayList CreateArray()

  {

    // Create a sample ArrayList.

    ArrayList result = new ArrayList(4);

    result.Add("item 1");

    result.Add("item 2");

    result.Add("item 3");

    result.Add("item 4");

    return result;

  }

 

  void Page_Load(object sender, EventArgs e)

  {

    if (ViewState["arrayListInViewState"] != null)

    {

      PageArrayList = (ArrayList)ViewState["arrayListInViewState"];

    }

    else

    {

      // ArrayList isn't in view state, so it must be created and populated.

      PageArrayList = CreateArray();

    }

    // Code that uses PageArrayList.

  }

   

  void Page_PreRender(object sender, EventArgs e)

  {

    // Save PageArrayList before the page is rendered.

    ViewState.Add("arrayListInViewState", PageArrayList);

  }

</script>

 

<html  >

<head runat="server">

    <title>View state sample</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    </div>

    </form>

</body>

</html>

 

7、可以存储在视图状态中的数据类型

您可以将下列类型的对象存储到视图状态中:

字符串、整数、Boolean 值、Array 对象、ArrayList 对象、哈希表、自定义类型转换器

您还可以存储其他类型的数据,但是必须使用 Serializable 属性编译类,以便可以为视图状态序列化该类的值。

 

8、从视图状态读取值

若要从视图状态读取值,请获取页的 ViewState 属性,然后从视图状态字典中读取值。

下面的示例演示如何从视图状态中获取一个名为 arrayListInViewState 的 ArrayList 对象,然后将一个 GridView 控件作为数据源绑定到该对象。

Dim arrayList As ArrayList

arrayList = CType(ViewState("arrayListInViewState"), ArrayList)

 

Me.GridView1.DataSource = arrayList

Me.GridView1.DataBind()

 

arrayList = new ArrayList();

arrayList = (ArrayList)ViewState["arrayListInViewState"];

 

this.GridView1.DataSource = arrayList;

this.GridView1.DataBind();

      视图状态中的值被类型化为 String。在 Visual Basic 中,如果设置了 Option Strict On,则必须在使用视图状态值之前将这些值强制转换为适当的类型,如上面的示例中所示。在 C# 中,当您读取视图状态值时,必须始终将其强制转换为适当的类型。

如果尝试从不存在的视图状态中获取值,则不会引发任何异常。若要确保值在视图状态中,请首先检查对象是否存在。下面的示例演示如何检查视图状态项。

if (ViewState["color"] == null)

    // No such value in view state, take appropriate action.

      如果您尝试通过其他某种方式使用不存在的视图状态项(如检查其类型),则会引发 NullReferenceException 异常。

 

9、保证视图状态的安全

默认情况下,视图状态数据存储在页上的隐藏字段中,并使用 Base64 编码机制进行编码。此外,还会使用计算机身份验证代码 (MAC) 密钥从视图状态数据中创建这些数据的哈希。该哈希值会添加到编码的视图状态数据中,并且生成的字符串会存储在页中。当页被回发到服务器时,ASP.NET 页框架会重新计算哈希值,并将其与视图状态中存储的值进行比较。如果哈希值不匹配,将引发异常,指示视图状态数据可能无效。

通过创建哈希值,ASP.NET 页框架可以测试视图状态数据是否已被损坏或篡改。但是,即使视图状态数据未被篡改,这些数据仍然可能被恶意用户截获和读取。

 

10、使用 MAC 计算视图状态哈希值

用于计算视图状态哈希值的 MAC 密钥可以自动生成,也可以在 Machine.config 文件中指定。如果该密钥是自动生成的,则基于计算机的 MAC 地址(它是该计算机中网络适配器的唯一 GUID 值)进行创建。

恶意用户很难根据视图状态中的哈希值进行反向工程处理以推断出 MAC 密钥。因此,MAC 编码是一种用来确定视图状态数据是否已更改的相当可靠的方式。

通常,用于生成哈希的 MAC 密钥越大,不同字符串的哈希值相同的可能性就越小。如果密钥是自动生成的,则 ASP.NET 使用 SHA-1 编码来创建一个大型密钥。不过,在网络场环境中,所有服务器的密钥必须相同。如果密钥不同,那么当页回发至创建该页的服务器之外的其他服务器时,ASP.NET 页框架将引发异常。因此,在网络场环境中,应在 Machine.config 文件中指定密钥,而不是让 ASP.NET 自动生成密钥。在这种情况下,请确保您创建的密钥足够长,以便使哈希值具有充分的安全性。但是,密钥越长,创建哈希所需要的时间也就越多。因此,必须在安全需求与性能需求之间进行权衡。

 

11、加密视图状态

虽然 MAC 编码有助于防止篡改视图状态数据,但这种编码也会妨碍用户查看数据。可以通过下面两种方式来防止他人查看此数据:通过 SSL 传输页,以及加密视图状态数据。要求通过 SSL 发送页有助于防止那些原本不应该收到该页的人探查数据包和未经授权访问数据。

但是,请求页的用户仍然能够查看视图状态数据,因为 SSL 会解密页以便在浏览器中进行显示。如果您不担心授权用户可以访问视图状态数据,则这种方法很好。但在某些情况下,控件可能会使用视图状态存储任何用户都不应访问的信息。例如,页可能包含一个数据绑定控件,该控件存储视图状态的项标识符(数据密钥)。如果这些标识符中包含敏感数据(如客户 ID),则应对视图状态数据进行加密来替代通过 SSL 发送页,或是将其作为通过 SSL 发送页的补充方法。

若要加密数据,请将页的 ViewStateEncryptionMode 属性设置为 true。在视图状态中存储信息时,可以使用常规的读写技术;页会为您处理所有加密和解密工作。对视图状态数据进行加密可能会影响应用程序的性能。因此,如不需要,请不要使用加密。

 

12、控件状态加密

使用控件状态的控件可以通过调用 RegisterRequiresViewStateEncryption 方法来要求对视图状态进行加密。如果页中的任何控件都要求对视图状态进行加密,则该页中的所有视图状态都会进行加密。

 

13、基于每个用户的视图状态编码

如果网站需要对用户进行身份验证,则可以设置 Page_Init 事件处理程序中的 ViewStateUserKey 属性,以便将页的视图状态与特定用户相关联。这将有助于防止一键式 (one-click) 攻击,在这种方式的攻击中,恶意用户创建一个有效的预先填充的网页,该网页具有来自以前创建的网页的视图状态。攻击者随后引诱受害者单击一个链接,该链接使用受害者的标识向服务器发送页。

如果设置了 ViewStateUserKey 属性,将使用攻击者的标识来创建原始页的视图状态的哈希。受害者被引诱重新发送此页时,由于用户密钥不同,因此哈希值也将不同。这样,页的验证将失败,并且引发一个异常。

必须将 ViewStateUserKey 属性与每个用户的一个唯一值(如用户名或标识符)相关联。

 

14、在共享宿主环境中保护配置的安全性

在共享的宿主环境中,恶意用户可能会修改状态管理属性,从而可能影响到计算机上的其他应用程序。修改方式包括:直接修改 Machine.config;使用配置类进行修改;以及使用其他管理和配置工具进行修改。您可以通过对配置文件的节进行加密来帮助防止他人修改您的应用程序配置。

C#串口通信从入门到精通(1)——硬件接线 RS-232接口一般都是9针的,有公母头(针头和孔头),为了便有理解以下都称为针头和孔头,针头就是露出来的针,孔头就是9个孔,总共使用3条线进行通信,一条用于发送,一条用于接收,另外一根是GND地线,由于线路的功能是永久性的,设置连接时,必须确保一个节点的发送线与另一个节点的接收线相连,反之亦然,RxD(PC的接收线)连接到TxD(传感器电子设备的发送线),TxD(PC的发送线)连接到RxD(传感器电子设备的发送线)。两条线路的电平都是相对于GND的。因此,GND也必须连接,但不能将GND与屏蔽连接。 阅读详情

相关推荐

Ubuntu22.04安装ROS2 —— ROS2 humble 详细图文教程

本文详细介绍了如何在Ubuntu22.04(Jammy)系统下配置ROS2环境,安装RO2软件包,并验证安装成功。ROS2的版本是Humble Hawksbill。:ROS是一个开源的,提供硬件抽象、设备驱动、库、工具和通信机制,支持模块化开发与集成,广泛用于机器人控制和自动化应用。ROS2 相较于 ROS1 在架构设计、通信机制和平台支持等方面做出了改进。ROS1 采用集中式主节点(Master)进行节点间通信,存在单点故障风险,且实时性和跨平台支持较弱。

weixin_49649078的博客 8813

ASP.NET验证视图状态MAC失败问题分析与解决

遇到这个问题的时候 我尝试了网上提供的很多解决方法,但是都解决不了,可能导致这一问题的原因有很多; 先说下网上的大多解决办法:         1.在接收页加上 @ page 指令下添加  EnableViewStateMac="false"或者 enableEventValidation="false" viewStateEncryptionMode ="Never"  当然也可以在web

MecrtLi的专栏 1009

halcon3D 点云拟合球体

halon3D 点云拟合球面

weixin_43213429的博客 1639

ASP.NET禁用视图状态

1、站点禁用视图状态 <configuration> <system.web> <pages enableViewState="false"/> </system.web> </configuration> 2、页面禁用视图状态 <%@ Page EnableViewState="false" ...

weixin_30652897的博客 195

ESP32使用microPython控制240x240彩色屏幕显示中文

王铭东老师详细讲解了讲了关于240x240屏幕的一些基础东西,我这里在原功能的基础上拓展了中文显示的功能,顺带修改了实际操作过程中程序中遇到的一些问题。

m0_59452630的博客 1万+

LabVIEW事件结构避坑指南:为什么你的‘确定按钮’事件有时会失灵?

本文深入探讨了LabVIEW事件结构中'确定按钮'事件失灵的常见原因及解决方案。从事件队列机制到事件类型选择,详细分析了事件丢失的五大原因,包括事件处理耗时过长、事件类型选择不当等,并提供了优化登录界面案例的实用建议。掌握这些技巧可显著提升LabVIEW用户界面的响应可靠性。

weixin_42548888的博客 355

“视图状态损坏”的困扰

如果你在调试或访问ASP.NET页面的时候遇到“此页的状态信息无效,可能已损坏”的异常,我相信你会束手无策的。因为网上能搜到的解决方案和微软的KB831150,都只会让你更迷惑。当然,我这里也不是给出解决方法,而是记录下我是如何遇到这个问题和如何避开这个问题的,希望对你处于类似场景中时能有所帮助。 一、问题回显 出问题的页面是一个注册页面。里面用到很多验证控件、输入框、下拉框,其中包含多个自定...

weixin_30757793的博客 265

5分钟搞定阿里云千问大模型API申请:手把手教你获取API Key

本文提供了一份高效的阿里云通义千问大模型API Key获取实战指南。通过清晰的步骤,帮助开发者在五分钟内完成从账号准备、精准导航控制台到创建并验证API Key的全过程,并强调了密钥安全管理和基础调用测试的重要性,助力快速集成AI能力。

ol789012345的博客 1349

asp.net 未能加载视图状态

今天写程序时遇到一个错误: 未能加载视图状态。正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。 程序实现的是控件的动态加载。 当出现这个错误后,观察错误原因,由于提示的是载能加载视图状态,视图状态与早前的控件树中的状态不匹配,看情况提交的视图状态被视为了不合...

weixin_30342209的博客 177

Nature、science、cell旗下刊物

Nature\science\cell子刊说明

计算机视觉 5606

2023华为OD面试手撕真题【最长公共前缀】

2023华为OD面试手撕真题【最长公共前缀】

MISAYAONE的博客 5241

ASP.NET 视图状态概述

视图状态是 ASP.NET 页框架用于在往返过程之间保留页和控件值的方法。在呈现页的 HTML 标记时,必须在回发过程中保留的页和值的当前状态将被序列化为 Base64 编码字符串。然后,此信息将被放入一个或多个视图状态隐藏字段。 本主题包括: 方案 ViewState 功能 背景 类参考 其他资源 新增功能 方案 视图状态由 A...

weixin_30787531的博客 156

基于Simulink的PID控制防抱死制动系统(ABS)建模与仿真

防抱死制动系统(Anti-lock Braking System,简称ABS)是一种用于防止车辆在紧急制动时车轮完全抱死的技术。通过实时监测车轮速度并调节制动力,ABS能够显著提高车辆的制动性能和操控稳定性,从而减少交通事故的发生。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于ABS控制系统中。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的ABS系统,重点研究PID参数调优方法、系统动态响应特性以及制动过程中的滑移率控制能力。

MHD0815的博客 484

ASP.NET 视图状态概述:初步了解

视图状态管理是一种简单且方便的技术。通过视图状态管理,控件开发者可以在一个原本无状态的环境下模拟有状态的且看起来是持续执行的运行效果。其具体过程为:每当用户请求某个.aspx页面时,.NET框架首先把相关控件的状态序列化成一个字符串,然后将其作为名为__VIEWSTATE的隐藏域的Value值发送到客户端。如果页面是第一次被请求,那么服务器控件也将是被第一次执行,名为__VIEWSTATE的隐藏域...

weixin_30555515的博客 87

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ASP.NET 4 和 Visual Studio 2010 Web 开发概述 3 — Web Forms

ASP.NET 4 和 Visual Studio 2010 Web 开发概述 3 — Web Forms Web Forms 从 ASP.NET 1.0 发布起就是核心特性。在ASP.NET 4 中有许多增强,包括: 设置 meta 标签的能力 对视图状态更多的控制 使用浏览器兼容能力的更简单的方法 支持对 Web Forms 使用路由 ...

weixin_34365417的博客 233

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

《Programming ASP.NET》(中文版)笔记三——第六章:网站基础

页面:当浏览器请求Web服务器中的.aspx文件时,服务器将处理该页面。如果是Web应用启动后第一次访问此页面,那么ASP.NET运行时将编译此页的Page类。该类由System.Web.UI.Page派生。经过编译的类中包括所有控件的声明和此页面的组成代码,例如,属性、事件处理程序和其他方法。代码隐藏:.aspx.cs 文件 转到另一个页面:实现这一功能,共有四种不同方法:超链接、服

j544759698的专栏 400

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

26个ASP.NET常用性能优化方法

26个ASP.NET常用性能优化方法 数...

weixin_30566149的博客 73

ASP.NET的数据绑定和视图状态管理。

ASP.NET是微软推出的一种使用.NET框架进行Web开发的开发模型,它可以用于创建动态网站和Web应用程序。要使用ASP.NET进行开发,数据绑定和视图状态管理在ASP.NET Web Forms中非常重要,它们分别涉及数据展示和页面状态的维护。

m0_73768515的博客 1945

ASP.NET 状态管理概述

ASP.NET  ASP.NET 状态管理概述   每次将网页发送到服务器时,都会创建网页类的一个新实例。在传统的 Web 编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失。为了解决传统的 Web 编程的固有限制,ASP.NET 包括了几个选项,

bestshl的专栏 1172

ASP.NET Web Forms - ViewState(视图状态)

维持 ViewState(视图状态) 在经典 ASP 中,当一个表单被提交时,所有的表单值都会被清空。假设您提交了一个带有大量信息的表单,而服务器返回了一个错误。您不得不回到表单改正信息。您点击返回按钮,然后发生了什么…所有表单值都被清空了,您不得不重新开始所有的一切! 在 ASP .NET 中,当一个表单被提交后,表单会连同表单值一起出现在浏览器窗口中。如何做到的呢?这是因为 ASP .NET ...

weixin_45582785的博客 1413

基于COM和.Net视图状态的Asp.net

视图状态(view state)是在单个页面中保存信息的第一选择,ASP.NET Web控件也使用试图状态在回发间保存属性值。通过页面内建的 ViewState 属性,你可以把自己的数据放入到视图状态集合中,可以保存的信息类型包括简单数据类型和自定义对象。   基于COM的视图状态 在传统(基于COM)ASP下,在构建即将输出的HTTP响应时,WEB开发者需要手动为传入的窗体部件

u014351353的专栏 582

ASP.NET 视图状态

Web 是基于无状态的http协议,ASP.NET 为了保证控件在页面传送到服务器,再从服务器发回到页面的时保持之前的状态。 代码准备: 在aspx页面上添加一个listbox控件,和一个button服务器控件: <asp:ListBoxrunat="server"ID="lbViewState"></asp:ListBox><asp:But...

304

ASP.NET服务器控件之视图状态

ASP.NET服务器控件之视图状态<a class="forward" title="转贴并收藏" onclick="function onclick(){Thread.forward();return false;}">为Web页面及其控件保持状态信息是非常有必要的。然而,由于Web应用程序创建于HTTP协议的顶层,这是一个无状态的协议,因此,保持状态信息则变得非常困难。为了

xchy521的专栏 338

ASP.NET 4.0引入的视图状态属性ViewStateMode与原EnableViewState的区别

介绍了ASP.NET 4.0引入的控件视图状态属性ViewStateMode与原EnableViewState的区别,并给出了测试代码。

HuLihui's Blog 5020

ASP.NET 2.0 状态管理概述

ASP.NET 状态管理 Web 本质上是无状态的;对页面的每个请求都将被视为新请求,而且默认情况下,来自一个请求的信息对下一个请求不可用。为了帮助克服此基于 Web 的应用程序的固有限制,ASP.NET 包含许多用于管理状态(即用于存储请求之间的信息)的功能。您可以使用状态管理跟踪任何影响应用程序行为的信息或数据:目录、购物车、用户选项、检查列表和命中计数器都是示例。...

aobc72208的博客 223
上一篇: ASP.NET - 状态管理建议
下一篇: ASP.NET - 应用程序状态概述
dodream
博客等级 码龄21年 93粉丝 247原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值