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