10 Ocak 2016 Pazar

MVC Server side Validation (Sunucu Tarafında Doğrulama)

1. Model Klasörün içerisindeki çalışanlar sınıfımızı açıyor ve şu şekilde düzenleme yapıyoruz
public class Calisanlar
{
[Required(ErrorMessage = "Adını giriniz!")]
[Key]
public string Ad { get; set; }
[StringLength(5, ErrorMessage = "Soyadı alanı beş karakterden fazla olamaz")]
public string Soyad { get; set; }

//[DisplayName("Maaş")]
[Required(ErrorMessage = "Maaş alanını giriniz")]
//[RegularExpression("\\d+", ErrorMessage = "Maaş alanına rakam girmelisiniz")]
[Range(0, int.MaxValue, ErrorMessage = "Maaş alanı pozitif bir sayı olmalıdır")]
//[RegularExpression(@"[0-9]*$", ErrorMessage = "Please enter a valid number ")]
public int Maas { get; set; }
public DateTime BaslamaTarihi { get; set; }
}

2. Çalışanlar controllerındaki KaydetCalisan methodumuzu duzenliyoruz.
switch (btnGonder)
{
case "Çalışan Kaydet":
if (ModelState.IsValid)
{
CanliSatisBal canliSatisBal = new CanliSatisBal();
c.BaslamaTarihi = DateTime.Now;
canliSatisBal.KaydetCalisan(c);
//çalışanı kaydediyoruz ve index sayfasına yonlendiriyoruz
return RedirectToAction("Index");
}
else
{
return View("EkleCalisan");
}
case "İptal":
return RedirectToAction("Index");
}
return new EmptyResult();
3. EkleCalisan.cshtml icerigini duzenliyoruz tablo yapısını kullanacağız. Body etiketleri icerisine aşağıdaki kodu ekliyoruz head içerisinde yazdığımız scripti kaldırmiyoruz.
<div>
<form action="/Calisan/KaydetCalisan" method="post">
<table>
<tr>
<td>
Adı :
</td>
<td>
<input type="text" id="TxtAd" name="Ad" value="" />
</td>
</tr>
<tr>
<td colspan="2" align="right">
@Html.ValidationMessage("Ad")
</td>
</tr>
<tr>
<td>
Soyadı :
</td>
<td>
<input type="text" id="TxtSoyad" name="Soyad" value="" />
</td>
</tr>
<tr>
<td colspan="2" align="right">
@Html.ValidationMessage("Soyad")
</td>
</tr>

<tr>
<td>
Maaş:
</td>
<td>
<input type="text" id="TxtMaas" name="Maas" value="" />
</td>
</tr>
<tr>
<td colspan="2" align="right">
@Html.ValidationMessage("Maas") 
</td>
</tr>

<tr>
<td colspan="2">
<input type="submit" name="btnGonder" value="Çalışan Kaydet" />
<input type="submit" name="btnGonder" value="İptal" />
<input type="button" name="btnReset" value="Reset" onclick="ResetForm();" />
</td>
</tr>
</table>
</form>
</div>
Ve F5 ile çalıştırıyoruz.
Eğer ki aşağıdaki hatayı alırsanız
“The model backing the 'CanliSatisDal' context has changed since the database was created. Consider using Code First Migrations to update the database.”
Global.asax sınıfının içeriindeki Application_Start methoduna aşağıdaki kodu ekliyoruz
 Database.SetInitializer(new DropCreateDatabaseIfModelChanges());
Aynı zamanda Package Manager Console dan
PM> enable-migrations yapmayı unutmuyuruz.

Hiç yorum yok:

Yorum Gönder