ASP.Net语法基础

一,基本页面构成

首先来看如下ASP.Net页面,以引出一些重要方面相关知识:

VB.NET       <%@ Page Language="VB" %>   <html>   <head>   <title></title>   <script runat="server" ' ASP.NET page code goes hereSubPage_Load()  If Page.IsPostBack Then ' ASP.NET "postback" code goes hereEnd If End Sub   </script>   </head>   <body>   <form runat="server"   <!-- ASP.NET controls go here -->   </form>   </body>   </html>

C#       <%@ Page Language="C#" debug="true" trace="false"%>   <html>   <head>   <title></title>   <script runat="server"  // ASP.NET page code goes here   void Page_Load() {  if (Page.IsPostBack) {   // ASP.NET "postback" code goes here   }   }   </script>   </head>   <body>   <form runat="server"   <!-- ASP.NET controls go here -->   </form>   </body>   </html>

1,Page directives页面提示:<%@ Page … %>,页面提示用于指定影响全页的设定。

<%@ Page Language=”…” %> (VB,C#等)指定该页使用编程语言,debug属性指定是否显示调试详细信息,trace属性指定显示页码执行的更详细信息(如变量跟踪)。

2,服务器端代码/控件:runat=“server”

3, 注释语句:

A,VB.Net: 使用前缀 ' 写单行注释,多多行只能每行前都加 '

B, C#.Net: 使用前缀 写单行注释,使用/* … */写多行注释 4, 方法Methods包括子过程(subroutines,subs,无返回值)和函数(functions,有返回值) 5, Page_Load()方法是特殊过程,在页面每次于浏览器上载入时执行。 6,条件语句: <code vb> A,VB.Net: If Page.IsPostBack Then End If B, C#: if (Page.IsPostback) { } </code> 7, 动态页面代码将在HTML之前在服务器端执行,然后才回送浏览器 ==== 二,定义和显示变量 ==== <code vb> <%@ Page Language=“VB” trace=“false” %> <script runat=“server”> Sub Page_Load() ' declare variables Dim strCarMake as String Dim strCarModel as String ' assign variables strCarMake = “Mini” strCarModel = “Cooper” ' set label text values lblCarMake.Text = strCarMake lblCarModel.Text = strCarModel If Page.IsPostBack ' postback code goes here End If End Sub </script> <html> <head> <title></title> <style type=“text/css”> .box001 { font-family: “trebuchet ms”, verdana, sans-serif; } </style> </head> <body> <form runat=“server”> <asp:label id=“lblCarMake” runat=“server” cssclass=“box001”/> <asp:label id=“lblCarModel” runat=“server” cssclass=“box001”/> </form> </body> </html> </code> <code vb> And the same page in C#: <%@ Page Language=“C#” trace=“false” %> <script runat=“server”> void Page_Load(object sender, EventArgs e){ declare variables

string strCarMake;

string strCarModel;

// assign variables

strCarMake = "Mini";

strCarModel = "Cooper";

// set label text values

lblCarMake.Text = strCarMake;

lblCarModel.Text = strCarModel;

if(Page.IsPostBack){

// postback code goes here

}

}

</script>

</code>

把上面的代码保存为variable_test.aspx并在服务器上执行,会显示如下结果:Mini Cooper

1,变量声明:

A,VB.Net: Dim strCarMake as String

B, C#: string strCarMake;

VB.NET中的变量声明关键字”Dim”是”Dimension,维,尺寸”的缩写,用于定义变量类型。C#中直接把数据类型关键字放在变量名前即可。

2,变量赋值:VB.net , C#.net: strCarMake = “Mini”

3, 显示变量:VB.net , C#.net: lblCarMake.Text = strCarMake

ASP控件: <asp:label id=“lblCarMake” runat=“server” cssclass=“box001”/>

标签控件的RunAt属性指定执行方式,CSSClass属性指定对应的CSS样式

4, C#的编程规范需要Page Load方法包含两个参数:object sender, EventArgs e

5, <form>和 <asp:label> 两个都包含了runat=“server”,显得有些多余。

三,检验输出页面

如下是上述页面的在浏览器中显示的源代码:[…]表示无意义字符

<html>   <head>   <title></title>   <style type="text/css"   .box001 {   font-family: "trebuchet ms", verdana, sans-serif;   }   </style>   </head>   <body>   <form name="_ctl0" method="post" action="simple_variable_test.aspx" id="_ctl0"   <input type="hidden" name="__VIEWSTATE" value="[...]" />   Mini   Cooper   </form>   </body>   </html>

服务器端代码比较安全。处理后的页面变化如下:<asp:label> 标签变为普通标签,其CSSCLass属性变为简单的Class属性,ID保持不变,RUNAT属性完全消失。

有趣的是,一个新的隐藏的<input>名为VIEWSTATE被自动加到form中,如果该表单提交后,标签会通过VIEWSTATE的Name和Value属性传递参数给form Action中指定的页面。在许多服务器端编程语言中,你不得不为之自己编码。

增加互动

目前为止,我们只是理论上学习页面构成。现在我们必须运用理论,付诸实践

四,高级主题

基于角色的安全性

密码

模板

数据库

[真正理解ViewState - part1 http://www.cnblogs.com/wdxinren/archive/2006/09/30/518952.html