ASP.NET MVC’de remote attribute ile farklı konumdaki metodlara property’e ait değeri göndererek kontrol işlemlerini kolayca gerçekleştirebilirsiniz örnek olarak sıkça karşılaştığımız kullanıcı adı kontrolü gibi kontrolleri remote attribute’ü ile yapabilirsiniz.
ASP.NET MVC Remote Attribute Kullanımı
Gerekenler
Remote attribute’ünü çalışması için aşağıdaki scriptleri projenizin Scripts klasörü altına ekleyin ve sayfanıza referans olarak ekleyin eğer jquery versiyonu farklıysa versiyon numarasını kendi projenizdeki ile değiştirebilirsiniz.
1 | <script src="~/Scripts/jquery-1.8.2.min.js"> |
Veritabanı
Projemizde kullanacağımız tablo şu şekilde;
1 2 3 4 5 6 7 8 9 | CREATE TABLE tblKullanici( [Id] INT PRIMARY KEY IDENTITY, [AdSoyad] NVARCHAR(50), [KullaniciAdi] NVARCHAR(50), [Sifre] NVARCHAR(50) ) INSERT INTO dbo.tblKullanici(AdSoyad, KullaniciAdi, Sifre) VALUES(N'Murat ÖNER', N'onermurat', N'111') INSERT INTO dbo.tblKullanici(AdSoyad, KullaniciAdi, Sifre) VALUES(N'Hakan GÜNER', N'gunerhakan', N'222') INSERT INTO dbo.tblKullanici(AdSoyad, KullaniciAdi, Sifre) VALUES(N'Muhammed Emin Öztürkler', N'eminozturkler', N'333') |
MVC Projemizde veritabanı işlemlerimiz için EntityFramework kullanacağız.
Kullanıcı Kontrolü
HomeController'imiz altındaki kullanıcı kontrolünü yapacağımız metod şu şekilde;
1 2 3 4 | public JsonResult KullaniciAdiKontrol(string kullaniciAdi) { return Json(!_db.tblKullanicis.Any(u => u.KullaniciAdi == kullaniciAdi), JsonRequestBehavior.AllowGet); } |
Remote Attribute Kullanımı
Remote attribute'ünü kullanmak için partial class anahtar kelimesi ile Entity tarafından oluşturulan tblKullanici sınıfını geliştirmiş olacağız.
Kullanici.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System.ComponentModel.DataAnnotations; using System.Web.Mvc; namespace MvcApplication2.Models { [MetadataType(typeof(MetaDataKullanici))] public partial class tblKullanici { } public class MetaDataKullanici { [Remote("KullaniciAdiKontrol","Home",ErrorMessage = "Girmiş olduğunuz kullanıcı adı kullanılıyor!")] public string KullaniciAdi { get; set; } } } |
Remote attribute'e parametreler sırasıyla Kullanıcı kontrolünün yapılacağı metod - kontrolün yapılacağı metodun bulunduğu controller sınıfı diğer parametreler ise opsiyonel ben sadece ErrorMessage'i kullanarak veritabanından kullanıcının girmiş olduğu kullanıcı adı ile eşleşen kayıt bulunduğu taktirde kullanıcıya vereceğim uyarıyı belirttim.
Sonuç
Sonuç resmindende görmüş olduğunuz gibi KullaniciAdi'na onermurat yazdığımda veritabanında eşleşen bir kayıt bulundu ve kullanıcıya uyarı verildi.