JAVA人用.NET之ASPX学习整理
1 文件头
假设页面名称为default.aspx
<%@ Page language="c#" Codebehind="default.aspx.cs" Inherits="vagrant.MyVagrant" %>
这句的意思是default.aspx继承自default.aspx.cs这个文件中的vagrant.MyVagrant这个类
2 母板页和内容页
母板页的定义:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="FdPage.master.cs" Inherits="FdPage" %>
AutoEventWireup属性的作用: 自动关联页面的Page_Load、Page_Init事件,好处就是不用再多写委托代码或重载代码了啦,坏处就是性能(听说的)和不直观性(影响菜鸟升级,“没见到事件关联它为什么会执行这段代码呢?”)。
母板页的引用:
<%@ Page Language="C#" MasterPageFile="~/FdPage.master"AutoEventWireup="true" CodeFile="Menu_auv.aspx.cs"
Inherits="App_Web_System_Menu_auv" Title="Untitled Page" %>
两者的关系:
内容页是与母版页相关联的 ASP.NET 网页。母版页建立一个布局并包含一个或多个用于可替换文本和控件的 ContentPlaceHolder 控件。内容页只包含在运行时与母版页的 ContentPlaceHolder 控件合并在一起的文本和控件。
3 用户控件和自定义控件
控件的使用:
3.1 在web.config中
<system.web>
<pages>
<controls>
<add tagPrefix="ucc" namespace="CommLib.Ucc" assembly="CommLib.Ucc"/>
<add tagPrefix="FCKeditorV2" namespace="FredCK.FCKeditorV2" assembly="FredCK.FCKeditorV2"/>
</controls>
</pages>
3.2 在页面中注册:
<%@ Register Src="VoteControl.ascx" TagName="VoteControl" TagPrefix="uc1" %>
3.3 在页面中使用:
<ucc:Hidden id="hid_ID" runat="server" />
4 c#值对象/实体类的定义
class Entity{
private int m_Id;
public int ID{
get { return m_ID; }
set { m_ID = value; }
}
}
5 c#集合类
列表:用List<类型>
Hash: 用HashTable
6c# 数据类
7 http://blog.sina.com.cn/s/blog_66d8992d0100pb5i.html
http://www.cnblogs.com/MyBeN/archive/2011/03/23/1992591.html
8 aspx,aspx.cs和dll的关系
aspx->cs->dll
asp.net项目在部署后,aspx文件并没有被编译,这种情形要一直维持到用户第一次访问页面,该页面文件aspx才会转化成cs,并编译成dll,这次访问速度不会很快,但从此以后,所有访问者将得到理想的访问速度。
那么如何在部署后就让所有的aspx处于已经编译成dll的状态呢?通过上面的描述我们不难想到,只要把所有页面都访问一遍即可,这个访问有一个简单方法,就是递归项目所在的文件夹,把物理路径转化成web访问的http地址,并使用httpRequest访问一遍即可(如果有权限控制,可能要作更多的工作)。
访问后,在\WINNT\Microsoft.NET\Framework\版本号\Temporary ASP.NET Files\项目名称\随机数\随机数
这个目录下会生成对应的文件,其中*.cs是通过aspx生成的类文件(该文件经过处理后,就可以实现无aspx文件的部署),*.dll是通过aspx生成的dll文件,*.res是aspx文件中除去runat=server剩余的不需要编译的部分。