【转】aspx与aspx.cs的关系
原文地址:
http://www.cnblogs.com/axzxs2001/archive/2009/01/19/1378383.html
在vs中,有很多朋友问起,在一个网站项目中的aspx和aspx.cs文件的关系,现在就归纳如下:
可以把aspx文件分成三部分:
l 有run=”server”属性的标签
l <% %>
l 标准HTML标签
再算上aspx.cs,一共是四块,我们分别来说他们的关系。

(图一)
我们来做个例子,结合上面的例子来看一下吧。
我们新建一个网站,页面如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"%>
<!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 runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="But_Yes" runat="server" Text="Button" />
<% int i = 10;
this.k = i;
%>
</div>
</form>
</body>
</html>
后参代码如下:
using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
public partial class _Default : System.Web.UI.Page
{
int j = 10; //私用成员
protected int k=100; //保护成员
protected void Page_Load(object sender, EventArgs e)
{
But_Yes.Text = "确定";
}
}
对这个例子我们来分析一下。
首先,我们要发布这个,会看到发布的文件有如下图所示:

(图二)

(图三)
我们主要看Default.aspx和bin中的这个dll,现在我们用反身工具Red Gate’s .NET Reflector来查看这个dll文件,发现在这个文件中,只有一个类_Defaule,如下图:

(图四)
好,我们已经把知识都准备好了,接下来分析图一。
按照图一的说法,编译成dll后,这个_Default这个类中应该有包括aspx.cs文件中的和aspx中有run=”server”属性的标签,当然,在类中就成为一个字段,并且是控件类型的字段了。我们在图四中可以看出,在aspx.cs中的j,k和aspx中的form1表单和But_Yes按钮都可以看到,但看不到<%%>中的i。aspx.cs和aspx中有run=”server”属性的标签是怎么样编译在一个类中的呢?原因在aspx.cs中,类_Default前的关键partial的功劳,我们都知道,这是一个分部类的关键字,就是可以把一个类分成两块来写,或分到两个文件中去写,aspx.cs是一部分,另一部分呢?另一部分就是在aspx中用run=”server”属性的签标,这些标签成为_Default类的一个字段,所以我们能在aspx.cs中能访问到这些标准。
我们接下来再看图一,在有请求到达服务端时,服务端就会把aspx中<%%>生成一个类,并且这个类是继承_Default这个类的,这样也就是说,在<%%>中的代码,能访问到aspx.cs中_Default中的非私有变量,也就是我们访问不到_Default类中的j,但能访部到该类中的k。
最后,_Default的子类和HTML代码在IIS和CLR的协作下,生成页面文件发送给客户端。
综上我们可以看出,aspx.cs文件和服务器端控件生成一个类,<%%>生成一个类,后面的类是在运行时生成,它是继承前面的类,最后再结合aspx文件中的HTML生成页面文件发送给客户。
(以上是在vs2008测试通过)
【转】aspx与aspx.cs的关系的更多相关文章
- ASP.NET -- WebForm -- .aspx与.aspx.cs文件
ASP.NET -- WebForm -- .aspx与.aspx.cs文件 1. ASP.NET -- WebForm(C#)文件 .aspx文件:是Html页面,页面的布局,样式在该文件中设计. ...
- .aspx和.aspx.cs之间的区别
在vs里面创建一个web窗体会产生两种文件:后缀是.aspx和.aspx.cs. 简单的来说,.aspx是表现层,可以简单理解为是写html代码的,界面的设计部分:.cs是对应的逻辑代码,再通过特定的 ...
- 新建应用母版页的网页index.aspx,about.aspx,login.aspx
转:http://www.netfoucs.com/liu_111111/article/details/8433491 -----------index.aspx:----------------- ...
- aspx、ashx以及cs的关系,viewState
aspx和ashx关系:aspx就是一种特殊的ashx,aspx对应的类是page,它是实现了IHttpHandler接口,所以说aspx是高级的HttpHandler.aspx中帮我们封装了很多操作 ...
- aspx 与 ashx cs
1. aspx 与 ashx 我们知道 aspx :继承自 System.Web.UI.Page 然而Page:IHttpHandler public class Page : TemplateCon ...
- aspx前台调用cs后台方法
随着对于mvc的习惯使用,aspx页面渐渐用的不怎么用了,主要是生命周期感觉上比较慢,要么就用html+handler一般处理程序来装下逼.虽然不用,但还是要给刚工作的人讲下,相信不少人都想过:既然前 ...
- 关于 WP 开发中.xaml 与.xaml.cs 的关系
今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: Windows Forms 先看看Window Forms中的 ...
- WebForm(aspx,cs,dll之间的关系)
WebForm分为两个文件aspx和aspx.cs,aspx是页面模板,是页面描述文件,就是html的内容,和aspx结合的更好,不用像一开始那样程序员自己去填充模板,控件都是定义在aspx中,内联的 ...
- aspx文件、aspx.cs文件、aspx.designer.cs文件之讲解
.aspx文件:(页面)书写页面代码.存储的是页面design代码.只是放各个控件的代码,处理代码一般放在.cs文件中. .aspx.cs文件:(代码隐藏页)书写类代码.存储的是程序代码.一般存放与数 ...
随机推荐
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
又到周五,这一周博主我工作效率极高,每天更新博客一篇,<快速创建网站>系列已经进程大半了,希望这个系列能够对大家有所帮助.今天周五了,博主要休息一下,就给大家唠叨一下这段时间都发生了什么. ...
- Ubuntu/Windows双系统修复引导
Ubuntu/Windows双系统修复引导 首先说明:在Windows存在的前提下安装Ubuntu(或者Ubuntu系列)是不需要修复引导的.因为grub会自动搜索存在硬盘中的系统. 而在Ub ...
- FileOutputStream VS FileWriter
当我们使用Java往文件写入数据的时候,我们有两种方式,使用FileOutputStream或FileWriter. FileOutputStream: File fout = new File(fi ...
- 因GIT默认忽略.dll文件导致的Visual Studio项目通过Bamboo编译失败
背景 由GIT管理的Visual Studio项目,使用Stash管理远端代码库,通过与Stash集成的Bamboo生成项目并发布 现象 Visual Studio项目本地生成成功,用SourceTr ...
- IO流05--毕向东JAVA基础教程视频学习笔记
Day20 10 创建java文件列表11 Properties简述12 Properties存取13 Properties存取配置文件14 Properties练习15 PrintWriter16 ...
- informatica 学习日记整理
1. INFORMATICA CLIENT的使用 1.1 Repository Manager 的使用 1.1.1 创建Repository. 前提: a.在ODBC数据源管理器中新建一个数据源连接至 ...
- ORACLE数据库对比表结构
有时候会有某种需求:需要对比两个表的表结构是否一致,有时候甚至是整个数据库所有表的表结构对比.......表结构对比无非就是字段名.字段类型.字段数据类型.以及字段的顺序的对比.如果需要对比表结构,可 ...
- Percona XtraBackup User Manual 阅读笔记
XtraBackup XtraBackup 2 安装XtraBackup 2.1 安装XtraBackup binary版本 2.1.1 yum的安装方法: 2.1.2 直接下载rpm包安装 3 Xt ...
- Mac上打开拷贝到移动硬盘里的文件提示“已经被osx使用不能打开”解决办法
在终端里面粘贴xattr -d com.apple.FinderInfo(此处按一下空格),然后把文件拖进终端窗口,按一下回车就好了
- Bootstrap模态框(modal)垂直居中
http://v3.bootcss.com/ 自己也试了改了几种方式也不容乐观,发现在窗口弹出之前是获取不到$(this).height()的值,本想着是用($(window).height()-$( ...