3
可有人請幫助我,因爲我不知道爲什麼 公衆的IHttpHandler GetHttpHandler(RequestContext的的RequestContext) 不執行。在我的Global.asax.cs我有ASP.NET MVC 2.0 +一個IRouteHandler的實施不火
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = "" } // Parameter defaults
);
routes.Add("ImageRoutes", new Route("Images/{filename}", new CustomRouteHandler()));
}
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
}
}
// CustomRouteHandler實現低於
public class CustomRouteHandler : IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
// IF I SET A BREAK POINT HERE IT DOES NOT HIT FOR SOME REASON.
string filename = requestContext.RouteData.Values["filename"] as string;
if (string.IsNullOrEmpty(filename))
{
// return a 404 HttpHandler here
}
else
{
requestContext.HttpContext.Response.Clear();
requestContext.HttpContext.Response.ContentType = GetContentType(requestContext.HttpContext.Request.Url.ToString());
// find physical path to image here.
string filepath = requestContext.HttpContext.Server.MapPath("~/logo.jpg");
requestContext.HttpContext.Response.WriteFile(filepath);
requestContext.HttpContext.Response.End();
}
return null;
}
}
任何機構可以告訴我,我在這裏失蹤。只需 公共IHttpHandler GetHttpHandler(RequestContext requestContext)不會觸發。
我也不會改變web.config中的任何東西。我在這裏錯過了什麼?請幫忙。
謝謝。但仍然不起作用。 – Peter 2010-03-14 06:10:24
對不起,你的解決方案是問題的一部分,但我發現更多這:)這是我的錯。我在一個名爲Content的目錄下有我的圖像,即內容/圖像/ {文件名}。在提交帖子前應該進行雙重檢查。道歉,並感謝您的幫助。 – Peter 2010-03-14 06:48:52