2013-07-23 43 views
2

我在asp.net mvc3 web應用程序中有一個通用處理程序(.ashx)。我用它來調整和緩存圖像。但我的網址不乾淨(http://www.example.com/Thumb.ashx?img=someimage.jpg)我想使它像http://www.example.com/Thumb/someimage.jpg 那樣乾淨我該怎麼辦?MVC3通用處理程序(.ashx)圖像大小調整(需要乾淨的URL)

我可以在global.asax中映射路由嗎,是的,那又如何?或者我應該使用IIS 7 URL重寫?

我感謝所有幫助,謝謝

+0

傢伙,請建議我的東西.. –

回答

3

的研究我一直在使用類(RouteHandler.cs)做了HTTP處理程序幾個小時後,但不與.ashx的,因爲ashx的不能使用的Global.asax

路線
public class RouteHandler : IRouteHandler 
{ 
    public IHttpHandler GetHttpHandler(RequestContext requestContext) 
    { 
     HttpHanler httpHandler = new HttpHanler(); 
     return httpHandler; 
    } 
    public class HttpHanler : IHttpHandler 
    { 
     public bool IsReusable 
     { 
      get 
      { 
       return false; 
      } 
     } 
     public void ProcessRequest(HttpContext context) 
     { 
      var routeValues = context.Request.RequestContext.RouteData.Values; 
      string file = context.Request.RequestContext.RouteData.Values["img"].ToString(); 

      // anything you can do here. 

      context.Response.ContentType = "image/jpeg"; 
      context.Response.BinaryWrite("~/cat.jpg"); 
      context.Response.End(); 

     } 
    } 
} 

然後在Global.asax中只註冊一個路徑

routes.Add(new Route("Thumb/{img}", new RouteHandler())); 
相關問題