好处:
一、耗费的服务器资源较少(和Application、Session相比)。因为,视图状态数据都写入了客户端计算机中。
二、易于维护。默认情况下,.NET系统自动启用对控件状态数据的维护。
三、增强的安全功能。视图状态中的值经过哈希计算和压缩,并且针对Unicode实现进行编码,其安全性要高于使用隐藏域。
缺点:
一、性能注意事项。由于视图状态存储在页本身,因此如果存储较大的值,即使在视图状态分块的情况下,用户显示页和发送页时的速度仍然可能减慢。
二、设备限制。移动设备可能没有足够的内存容量来存储大量的视图状态数据。因此,移动设备上的服务器控件时,将使用其他的实现方法。
三、潜在的安全风险。视图状态存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但他能被篡改。如果直接查看页输出源,能看到隐藏域中的信息,这导致潜在的安全性问题。