2010-08-12 14 views
10

In ASP.NET MVC sehe ich, ich habe handliche HTML-Helfer, die ich verwenden kann, um Formularfelder und eine beliebige Anzahl von anderen kleinen Dingen zu konstruieren. Aber dann gibt es "ActionLinks".ASP.NET MVC: ActionLink vs nackten URL

Warum sollte man einen ActionLink verwenden, anstatt einfach nur die verarbeitete URL in ein HTML-Anchor-Tag zu schreiben?

Mit anderen Worten, warum sollte ich

<%: Html.ActionLink("Back to List", "QuantityTypes") %> 

statt nur mit plain ol‘HTML und Schreiben verwenden:

<a href="/internal/quantitytypes">Back to List</a> 

Sicher, ich etwas extra mit der Action bekommen muß. Ich vermisse es nur, oder?

Antwort

9

Der Aktionslink Sie die richtige URL auf dem Controller basiert bauen, Aktion, Bereiche, params, etc ... Es erzeugt die URL auf der Grundlage der URL-Mapping-Regeln in der definiert Ihre MVC-Routingsystem. Es wird Params auch der richtigen URL zuordnen, abhängig davon, ob es direkt oder über einen Querystring-Parameter in die URL eingefügt werden muss.

Ja, Sie könnten es selbst machen und tippen Sie alles aus, aber es baut die URL für Sie und stellt sicher, dass die URL, die generiert wird, korrekt ist. Es ist eine Hilfsfunktion ... es hilft Ihnen, gültige Verbindungen herzustellen :)

Sie sollten Scott Guthrie's post lesen und besondere Aufmerksamkeit dem Abschnitt "Constructing Outgoing URLs from the Routing System" widmen. Es gibt das Warum und erklärt andere Helfer, die das Routing-System nutzen.

+0

+1 für den ScottGu Artikel - gute Lektüre. –

+0

Für das Standard-Routing von/{Controller}/{Aktion} Was kauft Sie? – LarryBud

0

Sie erhalten eine zentrale Kontrolle Ihrer URLs. Wenn Sie das nächste Mal für SEO-Zwecke ändern müssen, müssen Sie nicht nach jedem Ort in der Anwendung suchen, sondern nur in Global.asax wechseln.

+2

Interessant. Hast du ein Beispiel dafür, wie das aussehen würde? –

0

Was ist, wenn Sie den Controller-Namen von Intern zu Extern ändern möchten. Was wird passieren? Sie müssen den href-Link manuell ändern. ActionLink führt automatisches Routing durch. Sie müssen sich nicht mit URLs anlegen.

0

Ein weiterer Grund für die Verwendung von ActionLink über die leere URL besteht darin, dass Sie möglicherweise einen Download-Link zu einer gesicherten Ressource bereitstellen müssen, auf die die Anwendung nur über Identitätswechsel zugreifen kann.