RouteCollection.Ignore 方法

定义

定义不需检查是否匹配路由的 URL 模式。

重载

Ignore(String, Object)

定义一个 URL 模式,此模式在请求 URL 满足指定约束的情况下不需要检查 URL 是否与路由匹配。

Ignore(String)

定义不需检查是否匹配路由的 URL 模式。

注解

此方法创建映射到路由处理程序的 StopRoutingHandler 路由。 调用此方法后,与指定 URL 模式匹配的请求将不会作为路由请求进行处理。

当 URL 与物理文件(如图像文件)匹配时,ASP.NET 路由会自动忽略请求。 在某些情况下,你可能还希望路由在没有物理文件时忽略请求。 例如,即使没有与 .axd 文件扩展名对应的物理文件,ASP.NET 自动对 .axd 文件发出的请求也不应被视为路由请求。

Ignore(String, Object)

定义一个 URL 模式,此模式在请求 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,包括具有查询字符串 parameters 的 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 模式匹配的请求将不会作为路由请求进行处理。

当 URL 与物理文件(如图像文件)匹配时,ASP.NET 路由会自动忽略请求。 在某些情况下,你可能还希望路由在没有物理文件时忽略请求。 例如,即使没有与 .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 模式匹配的请求将不会作为路由请求进行处理。

当 URL 与物理文件(如图像文件)匹配时,ASP.NET 路由会自动忽略请求。 在某些情况下,你可能还希望路由在没有物理文件时忽略请求。 例如,即使没有与 .axd 文件扩展名对应的物理文件,ASP.NET 自动对 .axd 文件发出的请求也不应被视为路由请求。

另请参阅

适用于