Domanda

Penso che il titolo praticamente riassume:

Qual è la differenza tra RouteLink() e ActionLink() in ASP.NET MVC?

vale a dire. quando si usa Html.RouteLink() e quando si usa Html.ActionLink() nella tua View?

È stato utile?

Soluzione

Azione e percorsi non devono avere un 1:. Rapporto 1

ActionLink genererà l'URL per arrivare a un'azione utilizzando la prima route corrispondente al nome di azione.

RouteLink genererà un URL ad un percorso specifico determinato per nome o percorso valori.

Altri suggerimenti

In realtà, l'uscita dai due metodi è lo stesso, ma viene generata in modo leggermente diverso:

Html.ActionLink() lo rende facile generare ActionLinks veloce, e vi darà il controllo di base su ciò che viene reso. Se non si dispone di troppi percorsi, o non c'è bisogno di dare informazioni troppo o troppo specifici, questo farà il lavoro bene.

Il Html.RouteLink() metodo prende leggermente diversi argomenti, e quindi si dà un po 'di controllo più dettagliato sul modo in cui le cose vengono gestite. Io tendo ad usare questo metodo quando il mio scenario è un po 'più complicato, o quando ho una struttura più dettagliata del percorso.
Un esempio è un progetto recente in cui ho (per la flessibilità) invece avuto diversi percorsi diversi, che erano tutti abbastanza semplice, di un unico complesso che permetterebbe un sacco di informazioni. Così, ho finito con quattro o cinque percorsi per lo stesso controller, il tutto con un'azione predefinita specificata. Io per lo più usato la RouteLink versione, perché quando ho specificato un nome di rotta, i parametri di default sono stati inseriti automaticamente.

Con loro come ci si sente come e quanto dare un senso al progetto. Non c'è davvero nessun rialzo / ribasso a uno di loro (che non corrisponde da qualche altro ...).

In aggiunta alle altre risposte qui riportati, RouteLink è un po 'più veloce, e non può mai corrispondere al percorso sbagliato perché hai cambiato tabella di routing.

RouteLink prende il nome di una via, quindi se i vostri nomi di percorso sono affidabili e abbastanza unico allora questo sarà lo stesso anche se il nome dell'azione da utilizzare modifiche. collegamenti ActionLink ad una specifica azione di un controller specifico invece. Io uso sia nel mio punto di vista, a seconda del tipo di collegamento che sto cercando!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top