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

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

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

我还是不太懂这个原理。那么经过编译后。他依然只是一个index.aspx吗。还有就是象asp是把代码直接起在HTML中的。ASPX难道不是的吗。谁和我解释一下啊
展开
 我来答
百度网友a1bb88b
推荐于2016-08-08 · TA获得超过135个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:236万
展开全部
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进行数据等操作,最后每个control都有自己的render方法来输出HTML

-----------
也许你会想到,如果有大量的逻辑数据要处理,就不能做到像asp一样(buffer=false)时一点点HTML输出来,是的,这里aspx要想实现这样的效果就是要response.write,而不是使用控件,这种情况,MS推荐使用ashx

-----------
所以aspx可像windows编程一样,cs控制着aspx上每个控件的属性方法事件,而不必管理HTML输出的先出先后顺序,而顺序就在aspx上了

-----------
aspx在执行管道上,还有很多的特性,如cache,httpheader,httpmodule等,等着你的去研究
yizusong
2009-11-05 · TA获得超过3045个赞
知道大有可为答主
回答量:4516
采纳率:0%
帮助的人:4476万
展开全部
aspx页面中会注册这个CodeFile="main.aspx.cs" Inherits="main"
指明代码文件

aspx中也可以用<% %>插入c#服务端代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiumujiang
2009-11-04 · TA获得超过400个赞
知道答主
回答量:171
采纳率:0%
帮助的人:0
展开全部
HTML标签应该放在aspx文件中,代码也可以放在aspx文件中,但不推荐这样做。经过编译由aspx和cs文件共同生成一个Page类的实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniappe8t3L68TSCbzK
2009-11-04 · TA获得超过556个赞
知道小有建树答主
回答量:384
采纳率:0%
帮助的人:217万
展开全部
.Net这么设计正是为了实现所谓的MVC模式,

避免像asp,jsp,php那样的html界面代码和业务逻辑代码混杂在一起。

你看到的每个aspx页面都有一个.cs文件,那就是实现MVC模式中的controller角色的,用来接收用户的输入,调用相应的model。

编译后,每个.cs文件都会被编译成一个.dll程序集,放在bin目录下,你发布后可以看到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xclin163
2009-11-04 · 超过28用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:89.4万
展开全部
其实他们是部分类的关系,编译后其实是一个文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式