hai,
Я новичок в asp.net. Я хочу знать об общих обработчиках asp.net. и как и где он используется? Не могли бы вы помочь мне?
Спасибо.
hai,
Я новичок в asp.net. Я хочу знать об общих обработчиках asp.net. и как и где он используется? Не могли бы вы помочь мне?
Спасибо.
Общие обработчики - это компоненты .NET, которые реализуют интерфейс System.Web.IHttpHandler. Любой класс, реализующий интерфейс IHttpHandler, может выступать в качестве цели для входящих HTTP-запросов. Страница также является универсальным обработчиком. В общем случае общие обработчики имеют расширение ASHX.
Вы можете найти пример здесь
Обработчики используются, когда вы хотите избежать накладных расходов на обычной странице asp.net Практические примеры включают обработку изображений или обработку аякс-запросов.
Некоторые файлы ASP.NET динамически генерируются. Они генерируются с помощью кода С# или ресурсов диска. Эти файлы не требуют веб-форм. Вместо этого универсальный обработчик ASHX идеален. Он может динамически возвращать изображение из строки запроса, писать XML или любые другие данные.
Ashx File - это не что иное, как страница aspx. Они эквивалентны пользовательским обработчикам, написанным на C Sharp или Visual Basic.NET, поскольку они содержат классы, которые полностью реализуют IHttpHandler. Они удобны таким же образом, что файлы ASPX удобны. Вы просто просматриваете их, и они автоматически компилируются.
При использовании WebForms (aspx)
Простые HTML-страницы
Пользовательские элементы управления Asp.net
Простые Dyanamic Страницы
Когда используются обработчики (ashx)
Двоичные файлы
Динамические образы изображений
Производительность критичных веб-страниц
xml файлы
Минимальные веб-страницы
ASHX Generic Handler - это концепция возврата динамического содержимого. Он используется для возврата вызовов ajax, изображения из строки запроса, записи XML или любых других данных. Я использовал его для возврата файла MP4 из строки запроса. Пожалуйста, найдите следующий код.
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
namespace ESPB.CRM.Web.UI.VideoUploading
{
public class FileCS : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
int id = int.Parse(context.Request.QueryString["id"]);
byte[] bytes;
string contentType;
string strConnString = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
string name;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select Name, Data, ContentType from VideoUpload where [email protected]";
cmd.Parameters.AddWithValue("@Id", id);
cmd.Connection = con;
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
bytes = (byte[])sdr["Data"];
contentType = sdr["ContentType"].ToString();
name = sdr["Name"].ToString();
con.Close();
}
}
context.Response.Clear();
context.Response.Buffer = true;
context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name);
context.Response.ContentType = contentType;
context.Response.BinaryWrite(bytes);
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
Здесь я создал файл FileCS.ashx. Где я наследую интерфейс IHttpHandler. и написал функцию ProcessRequest (контекст HttpContext), которая будет работать по умолчанию во время вызова файла. И context.Request.QueryString [] получит параметр. Здесь я передаю id как параметр. Функция IsReusable() может использоваться для хорошей производительности.