RouteCollection.Ignore 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
定義不需檢查是否符合路由的 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 檔案提出的要求不應視為路由要求。
另請參閱
適用於
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應