.aspx与aspx.cs区别特点和功能
1) 首先了解一下整个asp.net网站的结构特点
整个网站
aspx/cshtml:前台页面,区别是编译引擎不一样,后者在ASP.net MVC3中引入
.dll:编译后的程序集
.css:样式表
.js:脚本文件
.config:配置文件,最常见的如 web.config
.asax:全局应用程序文件
.ascx:用户控件
.master:母版页
.cs/.vb:不常见,在WEB站点中需要发布源码时会出现
其它常见的文件类型但不必须,如:
.html:静态页面
.xml:XML文件,通常用于保存用户数据
.pdb:程序代码调试文件
以及其它程序自定义的文件类型。
常见的目录:
bin:程序集所在目录
2)
为了实现页面与代码分离,将代码写到cs文件中,这样编译后,将cs文件删除,将程序逻辑全部封装再.dll文件中。也可以写到.aspx文件中,这样看起来页面会很乱。
首先在aspx文件头添加对.cs文件的绑定
.aspx是设计页面,而.cs是类页面,也就是说设计页面用到的类信息在这个页面里面,其实就是把设计和实现分离开来。 也就是说设计界面所用的类都存在.cs界面内
总体来说可以把aspx文件分成三部分:
有run=”server”属性的标签
<% %>
标准HTML标签
通过各实例了解一下:
前台代码:
<%@ 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>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
后台.cs代码:
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 = "确定";
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
对此我们来分析一下:
到编译的时候,两者会被编译到一个文件内。
页面不是继承cs文件。aspx 和 .cs它们是一个数组 ,也就是说它们是平级的。
至于楼主问的.cs文件为什么能访问aspx里的id,button等等,只是在.cs类里面有个Page_Load事件,当用户一点击button,然后asp.net将整个aspx整个页面传回到cs,Page_Load中,编译cs时解析才能获得到,然后在将整个aspx页面解析成html文件一起传回页面,这也就是为什么当我们点击一下页面的控件整个页面会刷新一下的问题,之后才会出来什么ajax控件等技术。
至于后台有两个文件.cs和designer.cs. ASP不是把后台代码和前台显示代码放在一起的吗,那样维护起来有点乱,现在改变成asp.net就把它分开了,但是实际上它们还是在一类中,用了partial,编译时生成在一个文件存放在dll中的。
————————————————
版权声明:本文为CSDN博主「大魔王nick」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41622627/article/details/102726626