2009-07-28 25 views

Respuesta

0

le dice al motor de enrutamiento de ignorar esta solicitud y dejar que se ASP.NET formularios web para manejar las cosas.

Esto es útil, por ejemplo, para el registro ELMAH que utiliza el controlador elmah.axd.

2

Sin esto, ASP.NET trataría de asignar todas las solicitudes a los controladores AXD a los controladores y las acciones. Tener el ignoreRoute significa que la URL no asignará la URL a un controlador según el comportamiento predeterminado.

3

Un archivo .axd es un archivo virtual manejado por un controlador HTTP. Se utilizan (entre otras cosas) para proporcionar diversos recursos a la página web, como javascript generado automáticamente para controles AJAX y similares.

Como se trata de archivos virtuales, no desea que el motor de enrutamiento intente asignar estas solicitudes a los controladores. Necesita que sean ejecutados directamente por ASP.NET.

Eso es lo que logra la línea.

11

Esta es una de las cosas realmente frustrantes sobre el aprendizaje de MVC: la documentación de esta función es horrible, apenas hay nada allí: http://msdn.microsoft.com/en-us/library/dd470170(VS.100).aspx.

routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

Esto permite que todos los archivos something.axd que funcionen fuera del MVC - que "{*} Pathinfo" al final permite que las cadenas de consulta a ser ignorados (Es una especie de comodín).

Tenga en cuenta que esto no se aplica dicha comodín para el camino, por lo que:

trace.axd?clear=1 //excluded from MVC 

mySubFolder/customResource.axd //MVC passed to mySubFolderController.customResource() 

útil. No he podido encontrar ninguna documentación decente sobre exactamente lo que es y no es compatible como palabras clave aparte de "{resource}" y "{* pathInfo}"

Sin embargo, hay una característica casi indocumentada que le da mucho más control sobre estas rutas ignoradas:

//ignore all WebForms .aspx/.asmx/.ashx calls anywhere 
routes.IgnoreRoute("{*allaspx}", new { allaspx = @".*\.as[pmh]x(/.*)?" }); 

Si se pasa un objeto anon-inicializado con una propiedad, que la propiedad se convierte en una palabra clave que se puede utilizar en la ruta.

No puede pasar una expresión regular en la ruta, pero puede hacerlo en esta propiedad anónima.