MVC URL.Action veya Html.ActionLink metodlarını kullanarak MVC’de link oluşturmak içinde iki farklı yöntemi kullanabilirsiniz. Url.Action ile geriye sadece url adres dönerken Html.ActionLink ile geriye a(anchor) etiketli url adresi tanımlanmış ve isimlendirilmiş şekilde dönmektedir.
MVC Url.Action ile Html.ActionLink arasındaki fark
Html.ActionLink
Şimdi öncelikle Html Helper sınfının bir elemanı olan ActionLink’i inceleyelim;
1 | @Html.ActionLink("Ana Sayfa", "Index","Home") |
Sayfa renderlanınca Html.ActionLink’e ait sonuç aşağıdaki gibi olacaktır
1 | <a href="/Admin/Home">Ana Sayfa</a> |
Url.Action
Url.Action’un Html.ActionLink’inden farkı a etiketi için sadece href değerini geriye dönderir şimdi Html.ActionLink ile aynı sonucu almak için yazmamız gereken kod şu şekilde olmalı.
1 | <a href="@Url.Action("Index","Home")">Ana Sayfa</a> |
Yukarıdaki kod sonucunda çıkan sonuç şu şekilde olacak
1 | <a href="/Admin/Home">Ana Sayfa</a> |
Görüldüğü gibi Url.Action’da geriye dönen değer sadece /Admin/Home
‘ dır. diğer tanımlamaları biz elle yazdık kodlamada duruma göre bunu kullanmak zorunda kalabilmekteyiz bu nedenle aralarındaki farkı bilmemizde önemlidir.
Üstteki her iki metodu kullanmadan da direkt olarak kendiniz a etiketinin href attribute’üne üretilen çıktıda olduğu gibi direkt olarak yazabilirsiniz üstteki örnekte direkt olarak bir anlam kazanmayabilir kullanımı ama işin içine 3.parametrede yer alan argümanlar yada daha spesifik işleriniz için kullanacağınız farklı parametreler yer almaktadır bu parametreleri kullanarak metodların kullanımını daha anlamlı hale getirebilirsiniz. Diğer bir konuda tecrübemden yola çıkarak aktarmak istiyorum Eğer resharper eklentisini Visual Studio içerisinde kullanıyorsanız kesinlikle üstteki şekilde 2 parametreli yada tek parametrelide olsa metod’lu şekilde kullanın çünkü Resharper eklentisini kurduğunuzda metodlu kullanımızda size controller-action intellisense’i sağlanıyor.
📚 İlgilenebileceğiniz diğer bazı makaleler
📚 Kaynaklar
✍ Lütfen olumlu-olumsuz tüm görüşlerinizi bana yorum yada mail yolu ile iletmeyi ihmal etmeyin.
🔗 Sosyal medya kanallarından makaleyi paylaşarak destek olursanız çok sevinirim.
👋 Bir sonraki makalede görüşmek dileğiyle.