MVC Remote Validation Kullanımı

Veri girişi anında girdiğimiz veri eğer veritabanında varsa uyarılmak isteriz. Böylece aynı verinin tekrar girilmesi engellenmiş olur. İşte bu amaçla kullanılan bir özelliktir Remote özelliği. Hadi başlayalım.Öncelikle veritabanımızı oluşturalım.

Entity modelimizi oluşturalım ve gerekli validasyon özelliklerini belirleyelim.

 public partial class user
 {
     public int id { get; set; }
     [Remote("Kontrol", "Home", HttpMethod = "Post", AdditionalFields = "kulad", ErrorMessage = "Bu isimde üye var.")]
     [DisplayName("Üye Bilgisi")]
     [Required(ErrorMessage = "{0} gerekli")]
     public string kulad { get; set; }

     [DisplayName("Parola")]
     [Required(ErrorMessage = "{0} gerekli")]
     public string sifre { get; set; }
 }
HomeController.cs dosyamızın içeriğini şu şekilde kodlayalım.
public class HomeController : Controller
{
    kullaniciEntities db = new kullaniciEntities();
    public ActionResult Index()
    {
        return View();
    }
    [HttpPost]
    public ActionResult Kaydet(user kullanici)
    {
        if (ModelState.IsValid)
        {
            db.user.Add(kullanici);
            db.SaveChanges();
            return Content("Tamam");
       }
        return View();
    }
    [HttpPost]
    public JsonResult Kontrol(string kulad)
    {
        var count = db.user.Count(x => x.kulad.Equals(kulad));

        if (count == 0)
            return Json(true, JsonRequestBehavior.AllowGet);
        else
            return Json(false, JsonRequestBehavior.AllowGet);
    }
}
Index.cshtml dosyamızı tasarımını şöyle yapalım.
@model remoteKullan.Models.user
@{
    Layout = null;
}
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>
    <script src="//ajax.aspnetcdn.com/ajax/mvc/4.0/jquery.validate.unobtrusive.min.js"></script>
    <title>Index</title>
    </head>
<body>
    @using (Html.BeginForm("Kaydet", "Home", FormMethod.Post))
    {
        <div class="container">
            <div class="form-group">
                @Html.LabelFor(m => m.kulad)
                @Html.TextBoxFor(model => model.kulad, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.kulad)
                <br />
                @Html.LabelFor(m => m.sifre)
                @Html.TextBoxFor(model => model.sifre, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.sifre)
                <br />
            </div>
            <button type="submit" class="btn btn-success submit">submit</button>
        </div>
    }
    </body>
</html>

Projeyi çalıştıralım.Ekranımız.

Veritabanına kayıtlı bir üye ismi girelim ve sonuç.

Güzel bir özellik değil mi? İyi çalışmalar.



Etiketler
Remote AllowGet Json
Mesaj Yaz