ASP.NET和浏览器
ASP.NET and Browsers
让我们回顾一下:浏览器从不处理ASP.NET服务器控件。ASP.NET服务器控件由服务器端处理,并将标准的HTML发送至浏览器。
ASP.NET会确认浏览器是高版本还是低版本。高版本浏览器支持脚本的1.2版(ECMA Script、JavaScript、JScript)、层叠样式表(CSS)和HTML 4.0。典型的高版本浏览器包括Internet Explorer 4.0及后续版本。另一方面,低版本浏览器仅支持HTML 3.2。
ASP.NET可通知您是由哪个浏览器来显示页面。这个信息可通过HttpRequest.Browser属性获得。HttpRequest.Browser返回一个HttpBrowserCapabilities对象,该对象的很多属性都是Boolean值,例如,浏览器是否支持cookies、框架等。
您将发现,您并不需要经常查看HttpBrowserCapabilities对象,因为,服务器端将自动把HTML转换为适应客户端浏览器的接收能力的代码。例如,验证控件(在第8章中介绍)常用于验证客户输入的数据。如果客户端浏览器支持JavaScript,那么验证过程将在客户端进行(然后,再在服务器端运行,以防止欺骗客户端的行为发生)。然而,如果浏览器不支持客户端脚本,那么验证将只在服务端完成。
在浏览器中查看如图3-3页面的网页源文件。源代码显示在代码示例3-2中。在输出代码中,除服务器控件外,所有控件都转换成传统的HTML标签,并且有一个名为_VIEWSTATE的隐藏域。这就是ASP.NET维持控件状态的方式。当页面提交到服务器端,并且重新显示时,控件无须重置它们的默认值。第6章将讨论状态。
示例3-2:WebServerControls.aspx输出的HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
ASP.NET Server Controls
</title></head>
<body>
<form method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="_ _VIEWSTATE"
value="/wEPDwUKLTk1NTc5MjE0OQ9kFgICAw9kFgICAg8PFgIeBFRleHQFE1Byb2dy
YW1taW5nIEFTUC5ORVRkZGT09m86wvDVg2RbAlz0/3UYSr36Yg==" />
</div>
<div>
<h1>ASP.NET Server Controls</h1>
<h2>The date and time is 6/3/2005 2:46:00 PM.</h2>
<p>
</p>
<p>
<input name="txtBookName" type="text"
value="Programming ASP.NET" id="txtBookName"
style="width:250px;" />
</p>
<p>
<input type="submit" name="btnBookName" value="Book Name"
id="btnBookName" /> </p>
<p>
<span id="lblBookName">Programming ASP.NET</span>
</p>
</div>
</form>
</body>
</html>







