Файл Ashx, создающий изображения в MVC ASP.net

Я динамически создаю изображения, и мне нужно показать эти изображения пользователям. Для этого я создал файл ashx, но проблема в том, что этот файл ashx никогда не вызывается, не знаю, почему проблема с путём или необходимость добавления каких-либо тегов в web.config ... при отладке его не происходит ... может быть, он не находит, пожалуйста, посоветуйте.

РЕДАКТИРОВАТЬ: когда я напрямую нажимаю на URL-адрес ashx, он идет и показывает некоторые результаты

РЕДАКТИРОВАТЬ 1: должен знать, что сеанс является нулевым в контексте по какой-либо причине?

или MVC asp.net не требуют обработчиков ashx, пожалуйста, сообщите.

/// <summary>
/// Summary description for $codebehindclassname$
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class GetImage : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        Log.Info(" In theGetImage");
        context.Response.Clear();
        byte[] imageByteArray = System.Convert.FromBase64String(context.Session["FrontJpegBase64"].ToString().Replace(' ', '+'));
        // System.IO.MemoryStream imageMemoryStream = new System.IO.MemoryStream(imageByteArray);

        try
        {
            using (System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(imageByteArray)))
            {
                img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
            }

        }
        catch (System.Exception ex)
        {
                       }
        finally
        {
            // img.Close();
            context.Response.Flush();
        }
    }

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

person batwadi    schedule 20.11.2009    source источник


Ответы (1)


в контроллере нужно создать функцию, возвращающую FileResult

в vb.net

Function img() As FileResult
    Dim bmp As Bitmap = Nothing
    Dim dll As New Chess.cChessBoard

    dll.drawBoardPNG(bmp)

    Dim imgStream As New IO.MemoryStream
    bmp.Save(imgStream, ImageFormat.Png)
    imgStream.Position = 0

    Return File(imgStream.ToArray, "image/png")
End Function

в представлении вам нужно только позвонить

 <img src="/test/chess/img" />
person Fredou    schedule 20.11.2009