RouteCollection.Ignore 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
定义不需检查是否匹配路由的 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,包括具有查询字符串参数的 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 文件发出的请求也不应被视为路由请求。