RouteCollection.Ignore 方法

定義

定義不需檢查是否符合路由的 URL 模式。

多載

Ignore(String, Object)

定義 URL 模式,此模式在要求 URL 符合指定的條件約束時並不需要進行檢查是否與路由相符。

Ignore(String)

定義不需檢查是否符合路由的 URL 模式。

備註

這個方法會建立對應至路由處理常式的 StopRoutingHandler 路由。 呼叫此方法之後,符合指定 URL 模式的要求將不會處理為路由要求。

ASP.NET 路由會在 URL 符合實體檔案時自動忽略要求,例如影像檔。 在某些情況下,您可能也會想要在沒有任何實體檔案時路由忽略要求。 例如,即使沒有對應至 .axd 副檔名的實體檔案,ASP.NET 自動對 .axd 檔案提出的要求不應視為路由要求。

Ignore(String, Object)

定義 URL 模式,此模式在要求 URL 符合指定的條件約束時並不需要進行檢查是否與路由相符。

public:
 void Ignore(System::String ^ url, System::Object ^ constraints);
public void Ignore (string url, object constraints);
member this.Ignore : string * obj -> unit
Public Sub Ignore (url As String, constraints As Object)

參數

url
String

要忽略的 URL 模式。

constraints
Object

其他準則,可用來判斷是否忽略與 URL 模式相符的要求。

例外狀況

url 參數為 null

範例

下列範例示範如何使用這個方法來忽略所有副檔名為 .aspx 的 URL。 如果您註冊自訂 HTTP 處理常式來處理副檔名為 「.aspx」 之檔案的所有 URL,您可能會想要這麼做。 符合所有 .aspx 要求的單一 URL 模式需要兩個 catchall 參數,例如 {*path}.aspx/{*pathinfo} 。 (此模式會比對以 .aspx 結尾的任何 URL,包括具有查詢字串參數的 URL。) 不過,路由只允許結尾有一個 catchall 參數。 或者,您可以指定具有符合所有 URL 的單一 catchall 參數的 URL 模式,然後指定條件約束來排除沒有 .aspx 副檔名的所有專案,如下列範例所示:

routes.Ignore("{*allaspx}", new With {.allaspx = ".*\.aspx(/.*)?"})
routes.Ignore("{*allaspx}", new {allaspx=@".*\.aspx(/.*)?"});

前一行程式碼通常會新增至從 Application_Start Global.asax 中方法呼叫的方法,如多載的 Ignore(String) 範例所示。

備註

這個方法會建立對應至路由處理常式的 StopRoutingHandler 路由。 呼叫此方法之後,符合指定 URL 模式的要求將不會處理為路由要求。

ASP.NET 路由會在 URL 符合實體檔案時自動忽略要求,例如影像檔。 在某些情況下,您可能也會想要在沒有任何實體檔案時路由忽略要求。 例如,即使沒有對應至 .axd 副檔名的實體檔案,ASP.NET 自動對 .axd 檔案提出的要求不應視為路由要求。

另請參閱

適用於

Ignore(String)

定義不需檢查是否符合路由的 URL 模式。

public:
 void Ignore(System::String ^ url);
public void Ignore (string url);
member this.Ignore : string -> unit
Public Sub Ignore (url As String)

參數

url
String

要忽略的 URL 模式。

範例

MVC 專案的預設範本會使用此方法從路由排除 .axd 檔案,如下列範例所示:

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
        );
    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}
Public Class MvcApplication
    Inherits System.Web.HttpApplication

    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )

    End Sub

    Sub Application_Start()
        RegisterRoutes(RouteTable.Routes)
    End Sub
End Class

備註

這個方法會建立對應至路由處理常式的 StopRoutingHandler 路由。 呼叫此方法之後,符合指定 URL 模式的要求將不會處理為路由要求。

ASP.NET 路由會在 URL 符合實體檔案時自動忽略要求,例如影像檔。 在某些情況下,您可能也會想要在沒有任何實體檔案時路由忽略要求。 例如,即使沒有對應至 .axd 副檔名的實體檔案,ASP.NET 自動對 .axd 檔案提出的要求不應視為路由要求。

另請參閱

適用於