Apakah ada perbedaan antara HTML.ActionLink
vs Url.Aksi
atau mereka hanya dua cara untuk melakukan hal yang sama?
Ketika saya harus memilih satu atas yang lain?
Ya, ada perbedaan. Html.ActionLink
menghasilkan <a href=".."></a>
sedangkan tag Url.Aksi
kembali hanya sebuah url.
Misalnya:
@Html.ActionLink("link text", "someaction", "somecontroller", new { id = "123" }, null)
menghasilkan:
<a href="/somecontroller/someaction/123">link text</a>
dan Url.Tindakan("beberapaaksi", "somecontroller", baru { id = "123" })
menghasilkan:
/somecontroller/someaction/123
Ada juga Html.Aksi yang mengeksekusi seorang anak controller tindakan.
Html.ActionLink
menghasilkan <a href=".."></a>
tag secara otomatis.
Url.Aksi
hanya menghasilkan url.
Misalnya:
@Html.ActionLink("link text", "actionName", "controllerName", new { id = "<id>" }, null)
menghasilkan:
<a href="/controllerName/actionName/<id>">link text</a>
dan
@Url.Action("actionName", "controllerName", new { id = "<id>" })
menghasilkan:
/controllerName/actionName/<id>
Terbaik plus point yang saya suka adalah menggunakan Url.Tindakan(...)
Anda membuat tag anchor oleh anda sendiri di mana anda dapat mengatur sendiri terkait teks dengan mudah bahkan dengan beberapa tag html.
<a href="@Url.Action("actionName", "controllerName", new { id = "<id>" })">
<img src="<ImageUrl>" style"width:<somewidth>;height:<someheight> />
@Html.DisplayFor(model => model.<SomeModelField>)
</a>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "Company", FormMethod.Get))
{
<p>
Find by Name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)
<input type="submit" value="Search" />
<input type="button" value="Clear" onclick="location.href='@Url.Action("Index","Company")'"/>
</p>
}
Dalam contoh di atas anda dapat melihat bahwa Jika saya secara khusus perlu sebuah tombol untuk melakukan beberapa tindakan, saya harus melakukannya dengan @Url.Tindakan sedangkan jika saya hanya ingin link saya akan menggunakan @Html.ActionLink. Intinya adalah ketika anda harus menggunakan beberapa elemen(HTML) dengan tindakan url yang digunakan.
@HTML.ActionLink
menghasilkan HTML tag anchor
. Sementara @Url.Aksi
menghasilkan URL
untuk anda. Anda dapat dengan mudah memahaminya dengan;
// 1. <a href="/ControllerName/ActionMethod">Item Definition</a>
@HTML.ActionLink("Item Definition", "ActionMethod", "ControllerName")
// 2. /ControllerName/ActionMethod
@Url.Action("ActionMethod", "ControllerName")
// 3. <a href="/ControllerName/ActionMethod">Item Definition</a>
<a href="@Url.Action("ActionMethod", "ControllerName")"> Item Definition</a>
Kedua pendekatan yang berbeda dan itu benar-benar tergantung pada kebutuhan anda.