Asp.Net Mvc Form Değerlerini Alma

İbrahim     28 Mart 2017     1736     0    
Bu makalede, mvc'de form kullanımını göstereceğim.

Asp.net mvc 'de, asp.net componentleri toolbox'ta bulunmamakta.Bu yüzden mvc'de genellikle html kontrolleri kullanılır.Şimdi gelelim form oluşturmaya.Html ile uğraşan ya da uğraşmış arkadaşlar html'de nasıl form kullanıldığı az çok biliyordur.Aşağıdaki gibi bir yapı söz konusudur.

 

<form>
  <input type="text" name="kad">
  <input type="text" name="sifre">
  <input type="submit" name="kaydet" value="Kaydet">
</form>

 

Yukarıdaki kodları kullanarak da form verilerini çekebiliriz fakat biz asp.net mvc 'nin kendine ait kodlarını kullanacağız.Yukarıda form etiketi yardımıyla formu oluştururken, mvc'de beginform yardımıyla form oluşturulur.

@using (Html.BeginForm("ActionAdi","ControllerAdi", FormMethod.Get)) { }

Beginform içerisindeki ilk parametre action'ın adını, ikinci parametre controller'ın adını, üçüncü parametre ise form'un get ile mi, post ile mi gönderilecek onu belirler.Eğer üçüncü parametreyi yazmaz isek varsayılan formumuz post ile gönderilir.
Şimdi bir örnek yapalım.

İlk olarak sınıfımızı oluşturalım.

UyeBilgi.cs

public class UyeBilgi
    {
        public string Ad { get; set; }
        public string Soyad { get; set; }
    }

 

Controller oluşturuyoruz ve actionresult ismine Form diyoruz.

HomeController.cs

 public ActionResult Form()
        {
            return View();
        }

 

Ardından form metodun içinde fare ile sağ tık yapıp Add View diyerek view'imizi ekliyoruz.View'imizin içersine formumuzu oluşturuyoruz.

Form.cshtml

@{
    ViewBag.Title = "Form";
}
@model WebApplication1.Models.UyeBilgi
<br />
@using (Html.BeginForm())
{
    @Html.TextBoxFor(uye=> uye.Ad)
    @Html.TextBoxFor(uye => uye.Soyad)
    <input type="submit" value="Kaydet" />
}

Sınıfımıza verileri göndermek için yukarıda modelimizi tanımladık.Sonrasında html helper sınıfı altında bulunan BeginForm'un yardımıyla formu oluşturduk.
İçerisine Html.TextBoxFor'u ekleyerek bir textbox oluşturduk.Html.TextBoxFor'un içerisine girilecek verilerin nereye kaydolacağını belirledik.Bir adet de input oluşturduk.Şimdi bu girilen değerleri butona bastığımızda göndereceğiz.Ama bunun için bir action daha oluşturacağız.İlk action form'u ekranda göstermek içindi, ikinci action ise verileri kaydedebilmek için.

 

HomeController.cs

public ActionResult Form()
        {
            return View();
        }
        
        [HttpPost]
        public ActionResult Form(UyeBilgi u)
        {
            return View(u);
        }

Actionumuza UyeBilgi parametresini yazarak değerleri aldık.Aldığımız değerleri Form view'ine gönderdik ve ekrana yazdırdık.


Etiketler:  
aspnet
aspnet-mvc
mvc-form-olusturma
form-collection
model


Paylaş:  

Bir Cevap Yazın