Anchor (Bağlantı) Tag Helper, çeşitli özel niteliklere iletilen değerlerden bağlantılar oluşturmak için kullanılan HTML bağlantı (<a>) etiketini hedefler. Anchor Tag Helper, özellikle Controller’daki çeşitli action’lara bağlantı vermek istediğinizde size oldukça kolaylık sağlar. Bunu elbette normal HTML bağlantı öğeleri ve href özelliğiyle manuel olarak yapabilirsiniz, ancak Anchor Tag Helper’ı kullandığınızda href özelliği sizin için otomatik olarak oluşturulur.
Anchor Tag Helper Attribute (Özellikleri)
Attribute | Açıklama |
asp-controller | URL’yi oluşturmak için kullanılan Controller’ı belirtmek için kullanılır. |
asp-action | Controller’ın action metodunun adını belirtmek için kullanılır. Bu özellik adına karşı hiçbir değer atanmazsa, controller’daki varsayılan asp-action değeri view’e işlemek için yürütülür. |
asp-route-{value} | Bu özellik base route için kullanılır. Ancak {value} yer tutucusunda belirtilen herhangi bir değer bulunursa bu route parametresi olarak yorumlanır. |
asp-route | Bu özellik, gerçek bir route değerine bağlanan doğrudan bir URL oluşturmak için kullanılır. |
asp-all-route-data | Key-value çiftlerinden oluşan bir dictionary oluşturmayı destekler. Key, parametre adıdır ve value, parametre değeridir. |
asp-fragment | Bu özellik, URL’nin ekleneceği bir URL parçası bölümünü belirtir. |
asp-area | Bu özellik adı aslında gerçek route’da kullanılan alan adını ayarlar. |
asp-protocol | Bu özellik, URL’de https gibi protokol değerini belirtmek için kullanılır. |
asp-host | URL’de ana bilgisayar adını belirtmek için kullanılır. |
asp-page | Bu özelliğin Razor Pages ile kullanılması gerekir. |
Controller ve Action – Anchor Kullanımı
Bu Tag Helper’ın en sık kullanılan özellikleri, controller ve action attribute’dır. Adların gösterdiği gibi, bağlantının hangi Controller’a atıfta bulunmasını istediğiniz hangi method’a başvurmanıza izin vereceklerdir. Diyelim ki, filmlerin listesini görüntülemek için List() adlı bir action metoduna sahip MovieController adında bir Controller’ınız var. Bunun için Anchor Tag Helper ile şöyle bir bağlantı oluşturabilirsiniz.
Anchor Tag Helper – Controller, Action:
<a asp-controller="Movie" asp-action="List">Movie list</a>
HTML:
<a href="/Movie/List">Movie list</a>
Tekrar hatırlatmak gerekirse her iki özelliği de kullandığıma dikkat edin (controller ve action). Eğer yapmazsanız, ASP.NET, controller/action temelinde hangi controller’ı veya metodu kullanmak istediğiniz konusunda varsayımlarda bulunur.
Route-{Value} Anchor Kullanımı
Yukarıdaki örnekte, bir film listesine bağlantı veriyoruz, ancak belirli bir nesneye (örneğimizde belirli bir filme) bağlantı vermek istediğinizde kullanırız. Bu nedenle, Liste action çağrıldığında, bu örnekte olduğu gibi bir film listesi döndürürsünüz:
Controller:
public IActionResult Movie()
{
List<Movie> movies = new List<Movie>()
{
new Movie() { ID = 1, Title = "The Godfather" },
new Movie() { ID = 2, Title = "Forrest Gump" },
new Movie() { ID = 3, Title = "Fight Club" },
};
return View(movies);
}
Anchor Tag Helper – Route-{value}
<ul>
@foreach (var movie in Model)
{
<li>
<a asp-controller="Movie" asp-action="Details" asp-route-id="@movie.ID">@movie.Title</a>
</li>
}
</ul>
Sonuç:
https://localhost:7005/Movie/Details/2
Fragment – Anchor Kullanımı
Sayfanın belirli bir bölümüne başvurmanız gerekiyorsa, aşağıdaki gibi asp-fragment niteliğini kullanın:
Anchor Tag Helper – Fragment
<a asp-controller="Movie" asp-action="List" asp-fragment="test">Movie list</a>
HTML:
<a href="/Movie/List#test">Movie list</a>
Host – Anchor Kullanımı
Bağlantıda kullanılacak ana bilgisayar adını belirtmeniz gerekiyorsa, ör. google.com.tr. Genellikle gerekli değildir, çünkü bu değer gerektiğinde web sitesinden otomatik olarak alınabilir.
Anchor Tag Helper – Host:
<a asp-controller="Movie" asp-action="List" asp-host="google.com">Movie
list</a>
HTML:
<a href="http://google.com/Movie/List">Movie list</a>
Protocol – Anchor Kullanımı
Kullanılacak protokol (ör. http veya https). Yalnızca, oluşturma isteği için kullanılandan başka bir protokolü zorlamak istiyorsanız gereklidir.
Anchor Tag Helper – Protocol:
a asp-controller="Movie" asp-action="List" asp-host="google.com" aspprotocol="https">Movie list</a>
HTML:
<a href="https://google.com/Movie/List">Movie list</a>
One comment
Comments are closed.