2009-07-28 4 views

risposta

0

Indica al motore di routing di ignorare questa richiesta e di lasciare a Webform ASP.NET per gestire le cose.

Questo è utile ad esempio per la registrazione ELMAH che utilizza il gestore elmah.axd.

2

Senza questo ASP.NET tenterebbe di associare tutte le richieste ai gestori AXD ai controller e alle azioni. Avere ignoreRoute significa che l'URL non mapperà l'URL su un controller come per il comportamento predefinito.

3

Un file .axd è un file virtuale gestito da un gestore HTTP. Vengono utilizzati (tra le altre cose) per fornire varie risorse alla pagina Web, come ad esempio javascript generato automaticamente per i controlli AJAX e simili.

Poiché si tratta di file virtuali, non si desidera che il motore di routing provi a mappare queste richieste ai controllori. È necessario che vengano eseguiti direttamente da ASP.NET.

Questo è ciò che la linea raggiunge.

11

Questa è una delle cose davvero frustranti dell'apprendimento di MVC: la documentazione di questa funzione è terribile: non c'è quasi nulla lì: http://msdn.microsoft.com/en-us/library/dd470170(VS.100).aspx.

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

In questo modo tutti i file something.axd eseguire al di fuori MVC - che "{*} pathinfo" alla fine permette stringhe di query da ignorare (è una specie di jolly).

Si noti che questo non si applica tale jolly per il percorso, in modo da:

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

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

disponibile. Non sono riuscito a trovare alcuna documentazione decente su esattamente ciò che è e non è supportato come parole chiave a parte "{resource}" e "{* pathInfo}"

Tuttavia c'è una funzionalità quasi completamente non documentata che ti dà molto più controllo su questi percorsi ignorati:

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

Se si passa un oggetto anon-inizializzato con una proprietà, che la proprietà diventa una parola chiave che è possibile utilizzare nel percorso.

Non è possibile passare una regex nel percorso, ma è possibile in questa proprietà anon.