1、.aspx
Web窗体设计页面。Web窗体页由两部分组成:视觉元素(html、服务器控件和静态文本)和该页的编程逻辑(VS中的设计视图和代码视图可分别看到它们对应得文件)。VS将这两个组成部分分别存储在一个单独的文件中。视觉元素在.aspx 文件中创建。
2、.ascx
asp.net的用户控件,是作为一种封装了特定功能和行为(这两者要被用在Web应用程序的各种页面上)的Web页面被开发的。一个用户控件包含了html、代码和其他Web或者用户控件的组合,并在Web服务器上以自己的文件格式保存,其扩展名是*.ascx。asp.net里的缺省配置并不允许Web客户端通过url来访问这些文件,但是这个网站的其他页面可以集成这些文件里所包含的功能。
3、.ashx
ashx是“一般处理文件”。和aspx类似。但是这种文件要比aspx这种前台页面文件内容简单轻巧。.ashx不提供前台展示的功能。也可以说它结合了.cs类文件而且又可以提供给.aspx文件做UI层的互动。一般ajax这种无刷新或者其它异步操作可以用到。 例如很多网站里面统计功能,数据未完全加载完之前 页面上面会有一个图片旋转,当数据加载好之后用查询出来的数据无刷新的将页面图片替换,这样的情况就可以使用到这个文件来配合实现。当然.aspx也可以,但是对于一个很小的逻辑处理专门去创建一张.aspx页面文件很浪费资源,而且看上去也不直观,一眼望去不能直接看出该页面的用处。
以上解释太官方,不好理解,下面是个人理解:
ascx你可以理解为Html里的一部分代码,要建到aspx页面里而已,因为aspx内容多的时候实在是不太好管理.一般情况把公共的Html部分写成ascx,然后在多个aspx页面引用.举个例子:
这个页面的左边侧边栏部分,很多页面都有引用,就可以把它写在一个ascx用户控件中,每一个页面都可以引用它.
下面是代码实例:
第一步:创建一个ascx控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="NativeTicketMenu.ascx.cs"
Inherits="MainWeb.NativeTicket.Menu.NativeTicketMenu" %>
<div class="left_nav">
<ul>
<li class="title1"><span>国内机票</span></li>
<li><span>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="../NativePnrAnalytical.aspx">成人PNR出票</asp:HyperLink></span></li>
<li><span>
<asp:HyperLink ID="HyperLink8" runat="server" NavigateUrl="../NativePnrChdAnalytical.aspx">儿童PNR出票</asp:HyperLink></span></li>
<li id="White" runat="server"><span>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="../NativeTickerQuery.aspx">机票查询</asp:HyperLink></span></li>
<li id="PNR" runat="server"><span>
<asp:HyperLink ID="HyperLink10" runat="server" NavigateUrl="../EtemCodeManage.aspx">Eterm编码</asp:HyperLink></span></li>
</ul>
</div>
第二步:在aspx页面注册控件 :
<%@ Register Src="Menu/NativeTicketMenu.ascx" TagName="DomesticTicketMenu" TagPrefix="uc1" %>
第三步:在aspx页面引用控件 :
<uc1:DomesticTicketMenu runat="server" ID="DomesticTicketMenu" />