Avatar billede daddo Nybegynder
07. maj 2011 - 15:14

Route og ashx filer (vb.net 2010 )

Jeg har et problem; jeg har lavet en imageshandler (ashx fil) som virker fint.

Nu vil jeg gerne have søgemaskine venlige url til billederne:

www.site.dk/imagehandler.ashx?number=2255
bliver til:
www.site.dk/images/2255

Mit problemet er at Route i Global.asax ikke kan håntere ashx filer.

Jeg har søgt rigtig meget på nettet og har fundet flere eksempler som virker, men de er alle skrivet i c# og jeg arbejder i vb (vs 2010)

Men når jeg oversætter koderne til VB (jeg bruger Instant_VB) så er kodene fyldt med fejl.

Jeg håber at der er en anden der har haft samme problem... som kan vise et kodeeksempel i VB



Nedestående er en af de koder som jeg kan få til at virke under C#: (ashx filen der dog lavet om til en cs fil, er også ok)

****************************************** NumberRouteHandler.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Routing;

namespace Web
{
    public class NumberRouteHandler : IRouteHandler
    {
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return new NumberToImageHandler();
        }
    }
}
****************************************** NumberToImageHandler.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace Web
{
    public class NumberToImageHandler : ImageHandler
    {
        public NumberToImageHandler()
        {
            base.ContentType = ImageFormat.Png;
            base.EnableClientCache = false;
        }

public override ImageInfo GenerateImage(System.Collections.Specialized.NameValueCollection parameters)
        {
            string numberText = HttpContext.Current.Request.RequestContext.RouteData.Values["number"] as string;

            if (string.IsNullOrEmpty(numberText))
                numberText = "1";

            MemoryStream ms = new MemoryStream(File.ReadAllBytes("C:\\z2.jpg"));
            var img = Image.FromStream(ms);

          return new ImageInfo(img);

        }
    }
}
****************************************** Global.asax
Protected Sub Application_Start()
    RouteTable.Routes.Add(New Route("images/{*number}", New NumberRouteHandler()))
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester