Sayfalar

2 Mayıs 2013 Perşembe

ASP.NET MVC DERSLERİ ( 5.3.4 ) HTML HELPERS Html.Label & Html.ValidationMessage

Html.Label

Bu helper, HTML <label> elemanını üretir. Örneğin;

Html.Label("KategoriId")

satırının HTML çıktısı:

<label for="KategoriId">Kategori</label>

Label elemanı girdilerde bilgi sağlamak için kullanılır. Yani bir textbox elemanına değer gireceksek, o textbox elemanının ne için kullanıldığı hakkında. Örneğin Ad içinse başında Ad yazmak için, Eposta girilecekse, başında Eposta yazmak için...

Burada önemli olan, Kategori yazısının nereden geldiği... Label elemanının da farklı overload metodları vardır. Bu metodları kullanarak, text özelliğinide kendimiz değiştirebiliriz. Yani Kategori yazmasında başka birşey yazsın diyebiliriz. Eğer bir onu belirlemezsek, helper elemanı, modeldeki değişken ismini ve ya o değişken için Dataannotation(sonraki derslerde göreceğiz) kullanmışsak oradaki değeri otomatik olarak yazar.

Html.ValidationMessage

ModelState dictionary içerisinde herhangibir yerde hata varsa, bu hatayı göstermek için, bu helper elemanını kullanabiliriz. Örneğin;
[HttpPost]
public ActionResult HaberDuzenle(int id)
{ 
    var haber = db.Haber.Find(id);
    ModelState.AddModelError("Baslik", "Başlık uygun değil!");
    return View(haber);
}

şeklinde bir kod yazarsak; burada yaptığımız, haber nesnesini veritabanından çekip, bu modele birde başlık alanı için hata ekleyip view sayfasına gönderdik. View içerisinde aşağıdaki gibi bir kullanımda,
@Html.ValidationMessage("Baslik")

Eğer Baslik özelliği için hata mesajı tanımlıysa -ki biz tanımladık- bu hata mesajı görüntülenecektir. HTML çıktısı:
<span class="field-validation-error" data-valmsg-for="Baslik"
    data-valmsg-replace="true">
    Başlık uygun değil!
</span>

Bu helper kullanıldığı zaman, ModelState taranır, eğer hata tanımlanmışsa gösterir. Ayrıca yine overload metod kullanarak, hata mesajını View içerisinde değiştirebilirsiniz.
@Html.ValidationMessage("Baslik", "Baslik için yeni hata mesajı")

NOT: Validation elemanı dikkat ettiyeniz, span için field-validationerror diye bgir class oluşturuyor. Bu class ismini kullanarak, css içerisini değiştirebilirsiniz. Varsayılan MVC proje şablonundaki css dosyası içerisinde bu sınıflar zaten tanımlı, böylece sadece bu tanımlı class ların içeriğinide değiştirebilirsiniz.

Hiç yorum yok:

Yorum Gönder