Risposte:
Azione e percorsi non devono necessariamente avere una relazione 1: 1.
ActionLink genererà l'URL per accedere a un'azione utilizzando la prima route corrispondente in base al nome dell'azione.
RouteLink genererà un URL per una rotta specifica determinata dal nome o dai valori della rotta.
In realtà, l'output dei due metodi è lo stesso, ma viene generato in modi leggermente diversi:
Html.ActionLink()
semplifica la generazione rapida di ActionLink e offre un controllo di base su ciò che viene visualizzato. Se non hai troppe rotte o non hai bisogno di fornire troppe o informazioni troppo specifiche, questo funzionerà perfettamente.
Il Html.RouteLink()
metodo accetta argomenti leggermente diversi e quindi offre un controllo leggermente più dettagliato sul modo in cui vengono gestite le cose. Tendo ad utilizzare questo metodo quando il mio scenario è un po 'più complicato o quando ho una struttura del percorso più dettagliata.
Un esempio è un progetto recente in cui io (per flessibilità) avevo diversi percorsi, tutti abbastanza semplici, piuttosto che uno complesso che avrebbe consentito molte informazioni. Quindi, ho finito con quattro o cinque percorsi per lo stesso controller, tutti con un'azione predefinita specificata. Ho utilizzato principalmente la RouteLink
versione, perché quando ho specificato un nome di percorso, i parametri predefiniti sono stati inseriti automaticamente.
Usali come preferisci e quando hanno senso per il tuo progetto. Non c'è davvero alcun lato positivo / negativo per nessuno dei due (che non è eguagliato da altri ...).
Oltre alle altre risposte fornite qui, RouteLink è un po 'più veloce e non può mai corrispondere alla rotta sbagliata perché hai cambiato la tabella di instradamento.
RouteLink prende il nome di una rotta, quindi se i nomi delle vostre rotte sono affidabili e abbastanza univoci, questo sarà lo stesso anche se il nome dell'azione da utilizzare cambia. ActionLink si collega invece a un'azione specifica di un controller specifico. Uso entrambi nelle mie visualizzazioni, a seconda del tipo di collegamento che cerco!