Gibt es einen Unterschied zwischen HTML.ActionLink
vs Url.Action
oder gibt es nur zwei Möglichkeiten, dasselbe zu tun?
Wann sollte ich eins dem anderen vorziehen?
asp.net-mvc
asp.net-mvc-3
razor
Pankaj Upadhyay
quelle
quelle
Html.ActionLink
, um sie zu generieren. Versuchen Sie nicht, solche Mikrooptimierungen durchzuführen. Sie werden mit hässlichem Code in Ihren Ansichten enden.<a>
) generieren müssen . Verwenden Sie Url.Action, wenn Sie nur eine URL generieren müssen (dies kann auch in einer Controller-Aktion verwendet werden).Url.Action
ist viel leistungsfähiger alsHtml.ActionLink
. Ich hatte eine Liste von 6.000 Artikeln mit 2Html.ActionLinks
. Das Rendern der Liste dauerte 6.600 ms. Ohne dasHtml.ActionLinks
dauerte es 52ms. Die BenutzungUrl.Action
dauerte 270 ms. Zugegeben, 6000 Artikel sind eine große Liste, aber ich dachte, ich würde sie zum späteren Nachschlagen hinzufügen.Html.ActionLink
generiert<a href=".."></a>
automatisch ein Tag.Url.Action
generiert nur eine URL.Zum Beispiel:
erzeugt:
und
erzeugt:
Der beste Pluspunkt, den ich mag, ist die Verwendung
Url.Action(...)
Sie erstellen selbst ein Ankertag, in dem Sie Ihren eigenen verknüpften Text auch mit einem anderen HTML-Tag problemlos festlegen können.
quelle
Im obigen Beispiel können Sie sehen, dass ich, wenn ich speziell eine Schaltfläche zum Ausführen einer Aktion benötige, diese mit @ Url.Action ausführen muss. Wenn ich nur einen Link möchte, verwende ich @ Html.ActionLink. Der Punkt ist, wenn Sie ein Element (HTML) verwenden müssen, wobei die Aktions-URL verwendet wird.
quelle
@HTML.ActionLink
erzeugt aHTML anchor tag
. Während@Url.Action
generiert einURL
für Sie. Sie können es leicht verstehen, indem Sie;Beide Ansätze sind unterschiedlich und hängen ganz von Ihren Bedürfnissen ab.
quelle
Sie können Html.ActionLink einfach als Schaltfläche präsentieren, indem Sie den entsprechenden CSS-Stil verwenden. Zum Beispiel:
quelle
Ich habe den folgenden Code verwendet, um einen Button zu erstellen, und er hat bei mir funktioniert.
quelle