.ascx和.ashx的作用和使用

解释中各元素含义<%@ Page language="c#" Codebehind="PreDeliver.aspx.cs" AutoEventWireup="false" Inherits="Issue.Pre"%>

Page 是一个指令,language,Codebehind,AutoEventWireup,Inherits分别是这个指令的属性;
      language="c#" 表示该页面所使用的语言是C#;
      Codebehind="PreDeliver.aspx.cs" 表示该页的后置代码在当前目录下的PreDeliver.aspx.cs文件中;
       AutoEventWireup="false" 表示是否自动地将页面的事件和相应的方法绑定到一起,一般这个什要设为false,因为若设为true有可能两次调用相同的事件代码。
       Inherits="Issue.Pre"表示页面中的控件是在哪个类中定义的。


.ascx文件

 其实它就是用户自定义控件,最大的优点是提取多个页面的公用功能,然后在需要的页面引用它,提高了代码的重用性

使用方法如下:

在你的ASCX文件中写HTML代码,在ASCX.CS文件中写后台逻辑。
在你要引用ASCX文件的ASPX页面头部加上:

<%@ Register TagPrefix=”uc” TagName=”ucSample” Src=”ASCX文件在项目中的相对路径” %>  

在需要用到ASCX文件的地方加入:<uc:ucSample ID=”uc1″ runat=”server” />

以后你直接在ASCX文件和ASCX.cs文件里改代码就可以了。

ASPX里面只要保留最基本的HTML元素就可以了,一个页面可以由多个用户控件(也就是ASCX)组成。

在ASCX里面写代码的意义就是可以更灵活开发,而且可以更好的代码复用。你可以开发几个通用的用户控件,就和.net提供的那些控件一样,灵活的放到你用到的各个页面里。而且以后维护的时候只要更改你的一处代码就可以了。


.ashx

ashx是用于写web handler的,即为web应用程序中的一般事务处理程序文件。

通过前台的ajax方法传递值到.ashx文件后然后进行处理,可以返回text/html/script/xml/json这些类型值。

一般事务处理程序可以用来处理生成动态图片、 生成动态文本等不需要回传处理的任务。

以下是部分代码:

  1. namespace ComtecsolarManager.AjaxServer  
  2. {  
  3.     /// <summary>  
  4.     /// $codebehindclassname$ 的摘要说明  
  5.     /// </summary>  
  6.     [WebService(Namespace = "http://tempuri.org/")]  
  7.     [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  8.     public class PostHandlers : IHttpHandler, IReadOnlySessionState  
  9.     {  
  10.         HttpContext httpContext;  
  11.         static DataTable m_dtEntrustInfo = new DataTable();  
  12.         const string m_sConditionFormat = " AND {0} LIKE'%{1}%'";  
  13.   
  14.         public void ProcessRequest(HttpContext context)  
  15.         {  
  16.             httpContext = context;  
  17.             context.Response.ContentType = "text/plain";  
  18.   
  19.             switch (getFormString("method"))  
  20.             {  
  21.                 case "GetCURR":  
  22.                     GetCURR();  
  23.                     break;  
  24.                 case "GetUNIT":  
  25.                     GetUNIT();  
  26.                     break;  
  27.                 case "GetCOUNTRY":  
  28.                     GetCOUNTRY();  
  29.                     break;  
  30.                 case "GetGNoInfoByListNoType":  
  31.                     GetGNoInfoByListNoType();  
  32.                     break;  
  33.                 case "GetGInfoByCopGNo":  
  34.                     GetGInfoByCopGNo();  
  35.                     break;  
  36.                 case "GetNameModelByCopGNo":  
  37.                     GetNameModelByCopGNo();  
  38.                     break;  
  39.                 case "GetCrystalInfo":  
  40.                     GetCrystalInfo();  
  41.                     break;                    
  42.                 case "GetSquareInfo":  
  43.                     GetSquareInfo();  
  44.                     break;               
  45.                 case "GetCircleInfo":  
  46.                     GetCircleInfo();  
  47.                     break;                   
  48.                 case "GetNameModelQtyByCopGNo":  
  49.                     GetNameModelQtyByCopGNo();  
  50.                     break;  
  51.   
  52.                 case "CheckStockQty":  
  53.                     CheckStockQty();  
  54.                     break;  
  55.             }  
  56.         }  
  57.   


总结
aspx-->P(Page)
ascx-->C(Control)
ashx-->H(HttpHandler)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值