HTML.ActionLink vs. Url.Action in ASP.NET Razor
Gibt es einen Unterschied zwischen HTML.ActionLink
und Url.Action
oder sind das nur zwei Möglichkeiten, das Gleiche zu tun?
Wann sollte ich das eine dem anderen vorziehen?
286
3
Ja, es gibt einen Unterschied.
Html.ActionLink
erzeugt ein<a href=".."></a>
Tag, währendUrl.Action
nur eine URL zurückgibt.Zum Beispiel:
erzeugt:
und
Url.Action("someaction", "somecontroller", new { id = "123" })
erzeugt:Es gibt auch eine Html.Action, die eine untergeordnete Controller-Aktion ausführt.
Html.ActionLink
erzeugt automatisch ein<a href=".."></a>
Tag.Url.Action
erzeugt nur eine Url.Zum Beispiel:
erzeugt:
und
erzeugt:
Der beste Pluspunkt, der mir gefällt, ist die Verwendung von
Url.Action(...)
Sie erstellen ein eigenes Anker-Tag, in dem Sie Ihren eigenen verlinkten Text leicht selbst mit einem anderen HTML-Tag setzen können.
Im obigen Beispiel sehen Sie, dass ich, wenn ich eine Schaltfläche für eine bestimmte Aktion benötige, @Url.Action verwenden muss, während ich, wenn ich nur einen Link möchte, @Html.ActionLink verwenden werde. Der Punkt ist, wenn Sie ein Element (HTML) mit Aktion verwenden müssen, wird url verwendet.