عند البرمجة باستخدام ASP.NET، عادةً ما يتضمن فتح الصفحة تحديد عنوان الارتباط التشعبي واستدعاء ملف الصفحة المحدد (.html و.aspx) وطرق أخرى.
ومع ذلك، إذا تم إنشاء محتوى ملف الصفحة الذي سيتم فتحه ديناميكيًا في البرنامج أو تم إخراجه من جدول قاعدة البيانات، فكيف نعرض المحتوى؟
فكرتنا الأكثر مباشرة هي حفظ المحتوى في ملف صفحة ويب ثم استدعائه. من المؤكد أن هذه الطريقة ممكنة، ولكنها ليست الطريقة الأفضل لأنها ستنشئ العديد من الملفات المؤقتة على خادم الويب والتي قد لا يتم استخدامها أبدًا.
أفضل طريقة أخرى هي استخدام تدفق تنسيق النص لعرض محتوى الصفحة ديناميكيًا. على سبيل المثال هناك صفحة:
...
...
تحتاج إلى استخدام iFrame لفتح الصفحة، ويتم إنشاء محتوى هذه الصفحة ديناميكيًا. يمكننا كتابة ملف .ashx (يسمى html.ashx هنا) للمعالجة. يطبق ملف .ashx فئة واجهة IHttpHandler، والتي يمكنها إنشاء تنسيق البيانات الذي يستخدمه المتصفح مباشرة.
محتوى ملف html.ashx:
<%@ WebHandler Language="C#" Class="Handler" %>
باستخدام النظام؛
باستخدام System.IO؛
باستخدام System.Web
معالج الفئة العامة: IHttpHandler {
public bool IsReusable {;
يحصل {
عودة صحيحة؛
}
}
ProcessRequest العام الفارغ (سياق HttpContext)
{
// قم بإعداد إعدادات الاستجابة
context.Response.ContentType = "text/html";
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.BufferOutput = false;
دفق الدفق = null
string html = "
النجاح: اختبار txt.ashx";(
html)
;
Stream = new MemoryStream(System.Text.Encoding.ASCII.GetBytes("
// اكتب دفق النص إلى دفق الاستجابة
const int buffersize = 1024 * 16;
بايت[] المخزن المؤقت = بايت جديد[حجم المخزن المؤقت];
int count =stream.Read(buffer, 0, buffersize);
بينما (العد > 0)
{
context.Response.OutputStream.Write(buffer, 0, count);
count =stream.Read(buffer, 0, buffersize);
}
}
}
في ملف html.ashx، يتم تحويل السلسلة أولاً إلى مصفوفة بايت، ثم يتم إنشاء دفق بيانات MemoryStream في الذاكرة، ثم كتابتها أخيرًا إلى كائن OutputStream وعرضها.
بهذه الطريقة، يمكننا عرض الصفحة التي تم إنشاؤها ديناميكيًا من خلال وعرض محتوى صفحة الويب "النجاح: اختبار txt.ashx". في السلسلة html = "
النجاح: اختبار txt.ashx"؛ في ملف html.ashx، يمكن الحصول على محتوى المتغير html من قاعدة البيانات (put html مقدمًا يتم حفظ محتويات الملف في قاعدة البيانات).المؤلف: تشانغ تشينغ ( http://www.why100000.com )