ASP.NET Razor'da HTML.ActionLink vs Url.Action
HTML.ActionLinkile
Url.Action` arasında herhangi bir fark var mı yoksa bunlar aynı şeyi yapmanın iki yolu mu?
Ne zaman birini diğerine tercih etmeliyim?
286
3
Evet, arada bir fark var. Html.ActionLink
bir
etiketi üretirken,
Url.Action` yalnızca bir url döndürür.Örneğin:
üretir:
ve
Url.Action("someaction", "somecontroller", new { id = "123" })
oluşturur:Ayrıca bir alt denetleyici eylemini yürüten Html.Action da vardır.
Html.ActionLink
otomatik olarak bir
` etiketi oluşturur.URL.Action` yalnızca bir URL oluşturur.
Örneğin:
üretir:
ve
üretir:
Beğendiğim en iyi artı nokta
Url.Action(...)
kullanmakKendi bağlantılı metninizi başka bir html etiketiyle bile kolayca ayarlayabileceğiniz anchor etiketini kendiniz oluşturuyorsunuz.
Yukarıdaki örnekte, özellikle bir eylem yapmak için bir düğmeye ihtiyacım varsa, bunu @Url.Action ile yapmam gerektiğini, ancak sadece bir bağlantı istiyorsam @Html.ActionLink kullanacağımı görebilirsiniz. Önemli olan nokta, eylem url'si ile bazı öğeleri (HTML) kullanmanız gerektiğinde kullanılır.