ASPX与CS所谓的代码分离的原理
比如一个网站的首页,index.aspx在写代码的时候这个aspx文件点一下还有一个index.cs的文件。是放代码的。那index.aspx是不是就是放HTML标签的吗...
比如一个网站的首页,index.aspx
在写代码的时候这个aspx文件点一下还有一个index.cs的文件。是放代码的。那index.aspx是不是就是放HTML标签的吗。
我还是不太懂这个原理。那么经过编译后。他依然只是一个index.aspx吗。还有就是象asp是把代码直接起在HTML中的。ASPX难道不是的吗。谁和我解释一下啊 展开
在写代码的时候这个aspx文件点一下还有一个index.cs的文件。是放代码的。那index.aspx是不是就是放HTML标签的吗。
我还是不太懂这个原理。那么经过编译后。他依然只是一个index.aspx吗。还有就是象asp是把代码直接起在HTML中的。ASPX难道不是的吗。谁和我解释一下啊 展开
5个回答
展开全部
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等,等着你的去研究
在“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等,等着你的去研究
展开全部
aspx页面中会注册这个CodeFile="main.aspx.cs" Inherits="main"
指明代码文件
aspx中也可以用<% %>插入c#服务端代码
指明代码文件
aspx中也可以用<% %>插入c#服务端代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
HTML标签应该放在aspx文件中,代码也可以放在aspx文件中,但不推荐这样做。经过编译由aspx和cs文件共同生成一个Page类的实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
.Net这么设计正是为了实现所谓的MVC模式,
避免像asp,jsp,php那样的html界面代码和业务逻辑代码混杂在一起。
你看到的每个aspx页面都有一个.cs文件,那就是实现MVC模式中的controller角色的,用来接收用户的输入,调用相应的model。
编译后,每个.cs文件都会被编译成一个.dll程序集,放在bin目录下,你发布后可以看到。
避免像asp,jsp,php那样的html界面代码和业务逻辑代码混杂在一起。
你看到的每个aspx页面都有一个.cs文件,那就是实现MVC模式中的controller角色的,用来接收用户的输入,调用相应的model。
编译后,每个.cs文件都会被编译成一个.dll程序集,放在bin目录下,你发布后可以看到。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实他们是部分类的关系,编译后其实是一个文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询