0

存在しないファイルをルーティング システムから除外できません。Web フォームのシナリオでこのコードを扱っています。

public static void RegisterRoutes(RouteCollection routes)
{   
  routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
  routes.IgnoreRoute("{resource}.gif/{*pathInfo}");
  routes.IgnoreRoute("{resource}.jpg/{*pathInfo}");   
  Route r = new Route("{*url}", new MyRouteHandler());
  routes.Add(r);
}

デバッグするとき

public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
    string path;

    IHttpHandler page;

    try
    {
        path = requestContext.RouteData.GetRequiredString("url");
        LogFile(requestContext, path);
    }

パスにはまだ存在しない gif ファイル、jpg などが含まれています。可能であれば、拡張子を持つすべてのファイルを除外したい

上記のコードに何か問題がありますか? 順序は正しいですか。つまり、RouteCollections にルートを追加する前に、routes.IgnoreRoute エントリを追加しますか?

4

2 に答える 2

1

Web フォームでは、StopRoutingHandlerを使用できます。次の例では、http: //yoursite.com/images/xyz.jpgのような /images フォルダー内のファイルのルーティングは無視されます。

routes.Add(new Route("images/{resource}", new StopRoutingHandler())); 
于 2011-01-24T14:53:38.097 に答える
0

IgnoreRouteは ASP.NET MVC の拡張メソッドです(System.Web.Mvc) - Web フォームでは機能しません。

これを行う:

routes.Add(new Route("{resource}.gif/{*pathInfo}", new MyIgnoreHandler()));

他のルートを通常のハンドラーにマップします。

この質問から「mvc」タグを削除する必要があります。

于 2010-07-02T01:24:43.360 に答える