Aspnet MVC Form Oluşturma HtmlBeginForm
Aspnet MVC de form oluşturma işlemini nasıl yapıldığını ve nasıl gerçekleştiğini göstereceğim.
Html.BeginForm() Kullanımı:
Burada parametrelere geçmeden önce iki önemli nokta var eğer Html.BeginForm'u using içinde kullanıyorsak herhangi bir kapatma işlemi olmayacaktır ama kullanmıyorsak başlattığımız BeginForm u kapatmamız lazım. Bunu da Html.EndForm() yazarak hallediyoruz. Peki sorabilirisiniz neden using kullandığımızda EndForm() yazmıyoruz diye. Bunun nedeni using işlemi başlatır ve kendisi kapatır bize herhangi bir kapatma işlemine ihtiyaç bırakmaz.
Örnek Kullanımı :
Html.BeginForm(string actionName, string controllerName, FormMethod method ,RouteValueDictionary routeValues ya da ,object routeValues), object htmlAtrributes);
Kullandığımız parametreler şunlardır.
FormMethod = "Formumuzun action tipi "
string actionName = "Kullanıcağımız Action 'ın ismi",
string controllerName = "Actionumuz hangi Controllerdaysa onun ismi",
RouteValueDictionary routeValues = "Urldeki parametre ve değerlerini yazıyoruz varsa",
object routeValues = "Eğer Action da bir parametre varsa o parametreye değer göndermek için",
object htmlAttributes = "Linkimizde html kodlarını kullanmak için"
@*Kullanımı*@
@Html.BeginForm()
@{Html.EndForm();}
@*Html Ekran Çıktısı *@
<form action="/" method="post">..</form>
@*Üç parametreli kullanımı FormMethod*@
@{Html.BeginForm("Login", "Home", FormMethod.Post); /*Get için:FormMethod.Get*/}
@{Html.EndForm();}
@*Html Ekran Çıktısı *@
<form action="/Home/Login" method="post" // method="get"
@*Üç parametreli kullanımı RouteValueDictionary*@
@{Html.BeginForm("Login", "Home",new {kullaniciID = 7] ); }
@{Html.EndForm();}
@*Html Ekran Çıktısı *@
<form action="/Home/Login?kullanici=7" method="post">..</form>
@*Dört parametreli kullanımı*@
@{Html.BeginForm("Index", "Home", FormMethod.Post,
new { style ="border :1px solid red", @class="form-control"});}
@*formumuza css ve html kodlarımızıda eklemiş oluyoruz*@
@*Html Ekran Çıktısı *@
<form action="/Home/Login" method="post" style="border:1px solid red" class="form-control">..</form>
@*Html.BeginForm() 13 farklı şekilde yazılabilir ben basit ve temel olanları yazdım
siz ihtiyacınıza göre düzenliyebilirsiniz
son olarak da using şeklinde kullanımı *@
@{
var routeValues = new RouteValueDictionary();
routeValues.Add("kullaniciID" , "7");
//Bu şekilde de kullana biliyoruz değişken olarak da yazabiliriz
//Yukarıdaki gibi de değişkensiz de yazabiliriz sizin terciğinize kalmış
using(Html.BeginForm("Index", "Home",routeValues))
{
//html kodlar ya da html.Helper
}
}
@*Html Ekran Çıktısı *@
<form action="/Home/Login?kullaniciID=7" method="post" >..</form>
@*Html.BeginForm da FormMethod tanımlanmadığı vakit kendisi formun
metotdu Post olarak atamaktadır.*@