国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET 2.0 里輸出文本格式流

2019-11-18 16:33:22
字體:
來源:轉載
供稿:網友

        在用 asp.net 編程時,打開一個頁面一般是通過指定超鏈接地址,調用指定的頁面文件(.html、.aspx)等方法。

    但是,如果即將打開的頁面文件的內容是在程序中動態生成,或者是從數據庫的表里取出的,我們怎么把這些內容展示出來呢?
我們最直接的想法是,把這些內容先保存成網頁文件,再調用它。這種方法當然是可以的,但不是最好的方法,因為這樣會在 Web 服務器上生成
許多臨時文件,這些文件可能永遠也用不著了。

    另一種最好的方法是利用文本格式流,把頁面內容動態地展示出來。例如,有一個頁面:

    ……
    <iFrame src=""></iframe>
    ……

    需要用 iFrame 打開一個頁面,這個頁面的內容是動態生成的。我們可以寫一個 .ashx 文件(這里命名為 html.ashx)來處理。.ashx 文件里實現了 IHttpHandler 接口類,可以直接生成瀏覽器使用的數據格式。

    html.ashx 文件內容:

    <%@ 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)
        {
      // Set up the response settings
      context.Response.ContentType = "text/html";
      context.Response.Cache.SetCacheability(HttpCacheability.Public);
      context.Response.BufferOutput = false;

      Stream stream = null;

        string html = "<html><body>成功: test of txt.ashx</body></html>";
        byte[] html2bytes = System.Text.Encoding.ASCII.GetBytes(html);

        stream = new MemoryStream(html2bytes);

      if (stream == null)
            stream = new MemoryStream(System.Text.Encoding.ASCII.GetBytes("<html><body>get Nothing!</body></html>"));

      //Write text stream to the response stream
      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);
      }
     }

    }

    html.ashx 文件中首先把 string 字符串轉化為字節(byte)數組,然后再生成內存中的 MemoryStream 數據流,最后寫到 OutputStream 對象中,顯示出來。

    這樣以來,我們就可以通過 <iFrame src="html.ashx"></iframe> 來展示動態生成的頁面,顯示“成功: test of txt.ashx”的網頁內容。html.ashx 文件中 string html = "<html><body>成功: test of txt.ashx</body></html>"; 一句中,變量 html 的內容完全可以從數據庫中得到(事先把一個 html 文件內容保存在數據庫中)。

    作者: 張慶 (http://www.why100000.com)


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文化| 博乐市| 万全县| 宁波市| 如东县| 兴和县| 宽城| 吉安县| 揭西县| 买车| 安吉县| 浮梁县| 山阴县| 徐汇区| 犍为县| 新邵县| 靖宇县| 隆子县| 诸城市| 深泽县| 博爱县| 南乐县| 剑阁县| 荔波县| 饶阳县| 灵石县| 交口县| 香河县| 农安县| 城步| 大埔区| 措美县| 漳州市| 永吉县| 宝丰县| 新竹市| 康保县| 昌邑市| 漠河县| 南丰县| 扎鲁特旗|