Form Tag Helper

Form Tag Helper, uygulamanın yönlendirme yapılandırmasına dayalı olarak bir URL oluşturur ve bunu formun action niteliğine uygular. Ayrıca, request doğrulaması için sahteciliğe karşı bir belirtecin değerini içeren form içinde gizli bir alan oluşturur. Form öğesinde bir metot özelliği belirtilmemişse, form etiketi yardımcısı varsayılan olarak post değeriyle bir tane oluşturur.

Kısacası bu tag helper, bir Form içindeki Form ve HTML öğeleriyle çalışmamıza yardımcı olur.

AttributeAçıklama
actionBir MVC controller’daki action metodun adı.
all-route-dataMultiple route parametre değeri.
antiforgerySahteciliğe karşı bir token işlenip işlenmediğini belirtir.
areaMVC alanının adı.
controllerMVC controller’ın adı
fragmentURL’deki parça
hostdomain
pageBağlantı kurulacak Razor sayfası
page-handlerÇağırmak için Razor sayfa handler metot
protocolProtokol (http, https, ftp vb.)
routeroute’ın adı
route-Tek bir route parametresi değeri

Controller ve Action

Form Tag Helper’ı kullanmanın en kolay ve belki de en yaygın yolu controller ve action attribut’dır. Bu, Formun hangi controller’a gönderilmesini istediğinizi hangi action metodu belirtmenize olanak tanır.

<form asp-controller="Blog" asp-action="UpdateEntry" method="post" ></form>

Route

Yukarıda gördüğünüz gibi, istediğiniz Controller ve action methodu basmak kolaydır – Controller’ın adını ve Action method’un adını belirtmeniz yeterlidir. Ancak, alternatif olarak, belirli bir rout’u hedeflemeye karar verebilirsiniz. Bu durumda route, istenen action methoda ulaşmaktan sorumlu olacaktır. Bunu asp-route niteliğini kullanarak yapabilirsiniz.

<form method="post" asp-route="UpdateBlogEntry"></form>

asp-route özelliğinde belirtilen değer, hedeflemek istediğiniz route için belirtilen adla eşleşmelidir, örneğin bunun gibi:

[Route("Blog/Update", Name = "UpdateBlogEntry")] 
public IActionResult Update()
{ 
     .....

Route Parametreleri Ekleme

Hedefine gitmesinin istediğin route, FORM’unuzdan geçmeniz gerekebilecek bir veya birkaç parametre alabilir. Bu, aşağıdaki gibi bir sözdizimi kullanılarak yapılabilir.

<form method="post" asp-route="UpdateBlogEntry" asp-route-id="42"></form>

Elbette çoğu durumda, değer muhtemelen dinamik olacaktır ve örn. Modeliniz, şöyle:

form method="post" asp-route="UpdateBlogEntry" asp-routeid="@Model.Id"></form>

Fragment

Fragment (Parça), bir belgenin adlandırılmış bir bölümünü tanımlamak için kullanılan bir URL’de diyez işaretinden (#) sonraki değerdir.

<form asp-fragment="notes">...</form>

Page

Bağlantı kurulacak Razor sayfasının adı, dosya uzantısı olmadan sağlanmalıdır:

<form asp-page="page">...</form>