最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ashx文件的使用小結(jié)

 更新時(shí)間:2013年12月13日 09:45:14   作者:  
這篇文章主要是對(duì)ashx文件的使用進(jìn)行了介紹。需要的朋友可以過來參考下,希望對(duì)大家有所幫助

一提到Ashx文件,我們就會(huì)想到http handler以及圖片加載(在之前我們一般使用ASPX或者Webservice去做),一般做法如下:

Handler.ashx:

復(fù)制代碼 代碼如下:

<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.IO;
using System.Web;
public class Handler : IHttpHandler {

public bool IsReusable {
  get {
   return true;
  }
}
public void ProcessRequest (HttpContext context) {
  context.Response.ContentType = "image/jpeg";
  context.Response.Cache.SetCacheability(HttpCacheability.Public);
  context.Response.BufferOutput = false;
  PhotoSize size;
  switch (context.Request.QueryString["Size"]) {
   case "S":
    size = PhotoSize.Small;
    break;
   case "M":
    size = PhotoSize.Medium;
    break;
   case "L":
    size = PhotoSize.Large;
    break;
   default:
    size = PhotoSize.Original;
    break;
  }
  Int32 id = -1;
  Stream stream = null;
  if (context.Request.QueryString["PhotoID"] != null && context.Request.QueryString["PhotoID"] != "") {
   id = Convert.ToInt32(context.Request.QueryString["PhotoID"]);
   stream = PhotoManager.GetPhoto(id, size);
  } else {
   id = Convert.ToInt32(context.Request.QueryString["AlbumID"]);
   stream = PhotoManager.GetFirstPhoto(id, size);
  }
  if (stream == null) stream = PhotoManager.GetPhoto(size);
  const int buffersize = 1024 * 16;
  byte[] buffer = new byte[buffersize];
  int count = stream.Read(buffer, 0, buffersize);
  while (count > 0) {
   context.Response.OutputStream.Write(buffer, 0, count);
   count = stream.Read(buffer, 0, buffersize);
  }
}
}


*.aspx:
<img src="myHttpHander.ashx?id=123" width="20" height="20" />

我們變通以下,發(fā)現(xiàn)其實(shí)除了可以輸出圖片以外,還可以輸出文字:
Handler.ashx:

復(fù)制代碼 代碼如下:

<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Web;
public class Handler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("alert('hi')");
    }

    public bool IsReusable {
        get {
            return false;
        }
    }
}


*.aspx:
彈出alert
<script src="Handler.ashx"></script>
也可以把.ashx當(dāng)成css文件
<link href="css/Handler.ashx" rel="stylesheet" type="text/css">

xml文件
orderDoc.load("Handler.ashx");

還可以嵌入文字:
Handler.ashx:

復(fù)制代碼 代碼如下:

<%@ WebHandler Language="C#" Class="TestHandler" %>
using System;
using System.Web;
public class TestHandler : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("document.write(\"Hello World\");");
    }

 

    public bool IsReusable {
        get {
            return false;
        }
    }
}


*.aspx:
<script type="text/javascript" src="TestHandler.ashx" />

當(dāng)你希望從ashx或HttpHandler里訪問你的Session時(shí),你必須實(shí)現(xiàn)IReadOnlySessionState接口.

代碼:

復(fù)制代碼 代碼如下:

using System;
using System.Web;
using System.Web.SessionState;

public class DownloadHandler : IHttpHandler, IReadOnlySessionState
{
   public bool IsReusable { get { return true; } }

   public void ProcessRequest(HttpContext ctx)
   {
       ctx.Response.Write(ctx.Session["fred"]);
   }
}


其實(shí),學(xué)習(xí)的思路不應(yīng)該這樣,以上除了圖片外,我們都用偏了,為什么用偏了呢,因?yàn)檐浖院?jiǎn)單、實(shí)用為主,我們只是把以上純粹看成可一項(xiàng)技術(shù)而沒有把它放到軟件的地位去考慮:)
具體的用途,大家可以參考Rewirte.dll (這個(gè)dll,可以使服務(wù)器支持偽靜態(tài)的)

相關(guān)文章

  • asp.net下遍歷頁面中所有的指定控件的代碼

    asp.net下遍歷頁面中所有的指定控件的代碼

    遍歷aspx頁面中所有的指定控件的代碼
    2010-02-02
  • asp.net分割字符串的幾種方法小結(jié)

    asp.net分割字符串的幾種方法小結(jié)

    在編寫程序中,經(jīng)常要用到分割的方法來處理一些字符串。這里總結(jié)了幾種常用的分割方法
    2012-01-01
  • .NET?Core實(shí)現(xiàn)企業(yè)微信消息推送

    .NET?Core實(shí)現(xiàn)企業(yè)微信消息推送

    這篇文章介紹了.NET?Core實(shí)現(xiàn)企業(yè)微信消息推送的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 用vs調(diào)試sql存儲(chǔ)過程圖文介紹

    用vs調(diào)試sql存儲(chǔ)過程圖文介紹

    想必大家應(yīng)該有給存儲(chǔ)過程找錯(cuò)誤的經(jīng)歷吧,一遍遍的去讀sql代碼,一句一句的測(cè)試,發(fā)現(xiàn)一個(gè)小錯(cuò)誤可能都要用很長(zhǎng)的時(shí)間,接下來將介紹使用vs2010調(diào)試存儲(chǔ)過程,感興趣的朋友可以不要錯(cuò)過了啊
    2013-02-02
  • .NET下為百度文本編輯器UEditor增加圖片刪除功能示例

    .NET下為百度文本編輯器UEditor增加圖片刪除功能示例

    今天下載了目前最新版1.2.5為版本看更新記錄,主要是對(duì)表格做個(gè)修改,我下載用上,上傳圖片的刪除功能給取消了,下面與大家分享下增加圖片刪除功能示例
    2013-05-05
  • asp.net中ViewState的用法詳解

    asp.net中ViewState的用法詳解

    本文給大家介紹asp.net中viewstate的用法,涉及到viewstate的原理、用法、與session的對(duì)比等方面的知識(shí),對(duì)viewstate用法感興趣的朋友一起看看吧
    2015-10-10
  • Asp.Net性能優(yōu)化技巧匯總

    Asp.Net性能優(yōu)化技巧匯總

    這篇文章主要介紹了Asp.Net性能優(yōu)化技巧匯總,非常實(shí)用的歸納總結(jié),需要的朋友可以參考下
    2014-07-07
  • SignalR中豐富多彩的消息推送方式的實(shí)現(xiàn)代碼

    SignalR中豐富多彩的消息推送方式的實(shí)現(xiàn)代碼

    這篇文章主要介紹了SignalR中豐富多彩的消息推送方式的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • asp.net url分頁類代碼

    asp.net url分頁類代碼

    asp.net url分頁類代碼,需要用到分頁的朋友可以參考下。
    2009-11-11
  • .NET?6中的dotnet?monitor講解

    .NET?6中的dotnet?monitor講解

    dotnet?monitor為Azure?App?Service(Linux)提供.NET?應(yīng)用程序的診斷工具提供支持。這篇文章講解了.NET?6中的dotnet?monitor,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12

最新評(píng)論

漳州市| 胶南市| 通山县| 赤壁市| 凭祥市| 中卫市| 普洱| 黄浦区| 宁阳县| 南丹县| 余庆县| 宣武区| 甘谷县| 松桃| 连山| 东兰县| 通化县| 手机| 开阳县| 定远县| 托克逊县| 长白| 兴义市| 徐闻县| 海林市| 岗巴县| 资源县| 五河县| 邢台县| 邹城市| 苏尼特左旗| 嵩明县| 定南县| 礼泉县| 买车| 诸城市| 玉门市| 弋阳县| 木里| 新干县| 咸宁市|