Viac na
HTML.ActionLink vs Url.Action v ASP.NET Razor
Je nejaký rozdiel medzi HTML.ActionLink
a Url.Action
alebo sú to len dva spôsoby, ako urobiť to isté?
Kedy by som mal uprednostniť jeden pred druhým?
286
3
Áno, je v tom rozdiel.
Html.ActionLink
generuje tag<a href=".."></a>
, zatiaľ čoUrl.Action
vracia iba url.Napríklad:
generuje:
a
Url.Action("someaction", "somecontroller", new { id = "123" })
generuje:Existuje aj Html.Action, ktorá vykoná akciu podriadeného kontroléra.
Html.ActionLink
automaticky generuje tag<a href=".."></a>
.Url.Action
generuje iba url.Napríklad:
generuje:
a
generuje:
Najlepším plusom, ktorý sa mi páči, je použitie
Url.Action(...)
Vytvárate si vlastný anchor tag, kde si môžete jednoducho nastaviť vlastný odkazovaný text aj s nejakým iným html tagom.
V uvedenom príklade môžete vidieť, že ak potrebujem konkrétne tlačidlo na vykonanie nejakej akcie, musím to urobiť pomocou @Url.Action, zatiaľ čo ak chcem len odkaz, použijem @Html.ActionLink. Ide o to, že keď potrebujete použiť nejaký prvok(HTML) s akciou, použije sa url.