ASPX与CS所谓的代码分离的原理

来源:百度知道 编辑:UC知道 时间:2024/05/23 13:30:38
比如一个网站的首页,index.aspx

在写代码的时候这个aspx文件点一下还有一个index.cs的文件。是放代码的。那index.aspx是不是就是放HTML标签的吗。

我还是不太懂这个原理。那么经过编译后。他依然只是一个index.aspx吗。还有就是象asp是把代码直接起在HTML中的。ASPX难道不是的吗。谁和我解释一下啊

1、其实aspx与cs都不是最终运行的程序,而是环境根据他们来生成最终运行的程序源文件cs 再编辑dll运行
在“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”可应该可以找到最终源文件.cs,而不会有最终的"aspx"

2、aspx是直接用于环境编译的“模版”
在这里,你可以使用private 声明变量,实例化后,可页面直接使用
这里的runat="server"控件最终编辑及是加入到Page.Controls中(除非是模板中为对应父控件的Controls)
而HTML块,编译为litercontrol控件加入

3、如果有对应的cs,即@Page指令Inherits指的类为基类,如果没有指定即使用System.Web.UI.Page为基类(所以要求Inherits指定的类也必须继承于System.Web.UI.Page)
所以在cs你定义的字段必须声明为protected或更高的访问范围才能被aspx上使用,当然事件,方法都是

------------------------------------
你说的经编辑后,只是一个aspx,而所有的cs将被编辑成dll在bin目录下了
这个aspx留下的目的,仅是提供环境请求,及编译使用的
当然,如果你使用httpmodule捕捉请求的话,也可以没有aspx等任何文件

-----------------------------------
aspx与asp从这个角度说,asp是解析执行的脚本(每次请求都要解析)而aspx是预编译的(所以在第一次请求时会较慢一点,而第二次就很快了),在执行的原理是完全不一样的

你也可以理解aspx是基于control编辑编程的,页面上每一个runat="server"IDE都默认生成protected变量对应,你可以对每一个control进行数据等操作,最后每个con