您的位置:首页 > 编程语言 > ASP

WebForm 【aspx与aspx.cs的关系】| Code-behind技术(代码分离)

2014-08-21 17:07 435 查看
<1>详情可参考:http://www.cnblogs.com/cpcpc/archive/2010/05/28/2123124.html

aspx页

<pre name="code" class="html">ASPX是前台,表示设计页面;ASPX.CS是后台,是代码功能实现,分开来设计是为了代码清晰,功能模块化。

CodeBehind="WebForm1.aspx.cs" 表示:指定后台文件的路径(即这个WebForm1.aspx这个前台文件所对应的后台文件的路径,这里指定后台文件的路径是WebForm1.aspx.cs)

Inherits表示继承;Inherits="Home.WebForm1"表示当前页面.即:webForm1.aspx 这个页面是继承Home命名空间下WebForm1这个类的(注意这个webForm1是一个类,你打开webForm1.aspx.cs这个文件可以看到public partial class WebForm1: System.Web.UI.Page 说明WebForm1这个类是继承Page类的),也可以继承其他页面,继承了其他页面,就可以使用其属性和方法.

//------------------------------------------------------------------------------------

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="webform.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <!---------------------在aspx页面输入C#代码的几种形式--------------->

        <!---------------------输出10个"你好"--------------->

        <% for (int i = 0; i < 10; i++) { Response.Write("你好"); } %>

        <!---------------------输出10个"中国"-------------------------->

        <%for (int i = 0; i < 10; i++) %>
        <%{ %>
        中国
        <%} %>

         <!---------------------输出10个"美国",这10个"美国"分10行显示的------------------->

        <%for (int i = 0; i < 10; i++) %>
        <%{ %>
        <span>美国</span>
        <%} %>

        <!---------------------------------------------------------------------------->
        <!--在aspx.cs里定义了一个返回值为int的Num方法,在这里调用Num方法,并输出该方法的返回值-->
        <%=Num(5, 6)%>

        <!---------------------------------------------------------------------------->
        <!--在aspx.cs里定义了一个void的SayHello()方法,在这里调用SayHello()方法-->
        <% SayHello();%>
    </div>
    </form>
</body>
</html>
aspx.cs页面

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace webform
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //aspx.cs文件中存放有一个类(例如WebForm1),在你在浏览器输入地址(如:localhost:1555/webOne/WebForm1.aspx)向服务器请求该页面(WebForm1.aspx)时,ASP.NET就会将aspx.cs中的类作为基类,把当前的页面(aspx文件),编译生成一个新的类(例如了B,这个新的类就是下面所说的"当前类")然后交给.NetFramework去执行,执行完了之后生成HTML代码,然后以流的方式,再由这个服务器返回到浏览器,浏览器接收响应之后,它有把这个流转成HTML代码,然后显示在浏览器的界面上。
			//因为这个新的类是继承WebForm1的,所以你在aspx页面也是可以访问aspx.cs页面的方法及属性的(当然,基类的方法或属性的最少访问级别是public,protected),然后由B类产生对象在服务器端生成HTML文件发送给客户端,所以说这里是继承关系【通俗的讲:其实际就是aspx页继承aspx.cs页】
			
			
			//当你执行这个页面的时候,当前类(ASP.webform1_aspx )其实是当前页面这个类(WebForm1 )的子类, 这个当前类是ASP给你自动生成的 
			
			Response.Write(this.GetType()+"<br/>"); //获取当前类的类型 输出:ASP.webform1_aspx 
			
			Response.Write(this.GetType().BaseType);//获取当前类的父类型。输出webform.WebForm1 } 
			
			public int Num(int a,int b) 
			{ 
				return a + b; 
			} 
			public void SayHello() 
			{ 
				Response.Write("大家好"); } 
			}
		}
	
	}
}



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: