Bu site emekli olmuştur. Arşiv amaçlı olarak
BT AKADEMİ
sponsorluğunda yayın hayatına devam etmektedir.
Ana Sayfa
.net TV
Makaleler
Kaynak Kod
Haberler
Serbest Köşe
Canlı Köşe
Forum
C#nedir?
Ekibimiz
RSS
ADO.NET/SQL
C / Sys Prog.
Genel
Mono ve .NET
Silverlight
XML / Web Serv.
X86 Assembly
C++ / C++.NET
J#.NET / Java
.NET 3.x
UML / Analiz
Yazılım Müh.
ASP.NET
C# / VC#/.NET
Mobil Prog.
PHP 5
YAZAR HAKKINDA
Turhal Temizer
http://www.turhaltemizer.com
İletişme geçmek için
tıklayın
.
92
Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için
tıklayın
.
Yayınlanan diğer makaleleri için
tıklayın
.
İlgili etiketler:
.Net
Ado.NET
Asp.Net
Asp.Net MVC
Csharp
Entity
EntityFramework
IDataErrorInfo
MVC
MVC Framework
ASP.NET
Turhal Temizer
YAZI HAKKINDA
Türü
:
Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi
:
Başlangıç
Kategori
:
ASP.NET
Yayınlanma Tarihi
:
6.9.2009
Okunma Sayısı
:
24548
Yorum Sayısı
:
0
yorum yaz
SİTE İÇİ ARAMA
Üye
GİRİŞİ
Üye girişi için
tıklayın
.
Kullanıcı Adı
Şifre
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
Şifremi / Kullanıcı Adımı unuttum.
C#nedir? hesabınız yok mu?
Üye olabilmek için
tıklayın
.
Serbest KÖŞE
(?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır.
Bu yazılar editör incelemesine girmeden yayınlanır.
Silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
silindi
emre TAŞ
yazının devamı >
Bende Yazmak İstiyorum
Blogroll
Burak Selim Şenyurt
Bellek Yönetiminde Verimlilik için İpuçları (Rust Odaklı)
1.6.2025
Burak Selim Şenyurt
Rust ve Güvenli Bellek Yönetimi Hakkında
1.6.2025
Diğer Herşey
»
Makaleler RSS
»
Video Gönder
»
Makale Gönder
»
Serbest Köşeye Yazı Gönder
»
Yazar Başvurusu
»
C#nedir? Ekibinde Olmalıyım!
Sponsorlar
Ana Sayfa
/
Makaleler
/
ASP.NET
/
Asp.Net MVC Framework - Validation İşlemleri - II
Asp.Net MVC Framework - Validation İşlemleri - II
Favorilerime Ekle
Gönderiliyor lütfen bekleyin...
arkadaşıma gönder
Arkadaşınızın email adresi:
*
Mesajınız:
Günler geçtikçe ASP.NET MVC Framework hem ülkemizde hem de dünyada yayılmaya devam etmektedir. Geliştirdiğimiz web projelerinin geliştiriciler tarafında hızlı geliştirilebilmesine sağladığı olanaklar ve çalışma zamanındaki performansı ile tercih sebebi olma yolunda emin adımlarla ilerlemektedir. Ayrıca MVC kalıbını yıllardır web kullanıcıları kullanıyordu. Ancak ASP.NET MVC Framework ile birlikte gelen hazır özelliklerin bir çoğunu kendimiz oluşturmak durumunda kalıyorduk. Bu da bize MVC Framework ile geliştirdiğimiz uygulamaların geliştirilebilirliğinin daha da kolay olduğunun ufak bir göstergesidir.
ASP.NET MVC Framework ile yapılabilecekleri ufak örnekler yardımı ile bir süredir inceliyoruz. Bu sefer ise bir önceki yazımızda incelemiş olduğumuz Validation kontrollerini devam yazısı ile incelemeye devam ediyoruz. Bu yazımızda
ModelState.AddModelError()
ile yapmış olduğumuz hata kontrolünü kendi hazırlayacak olduğumuz sınıf yardımı ile nasıl yapabileceğimizi incelemeye çalışacağız.
Validation kontrolünü yine bir örnek ile inceleyelim ve veri tabanında ders tablosu oluşturalım.
Tabloyu oluşturduktan sonra bir MVC projesi oluşturacağız. Sonrasında ise projeye Entity Framework özelliklerinden yararlanmak için Entity Data Model ekleyeceğiz.
Not:
Entity Model ile çalışırken unutulmaması gereken en önemli noktalardan biri model üzerine eklemiş olduğumuz tablo objelerinin isimlerinin veri tabanı ile aynı olmamasıdır. Bu sebepte veri modeline attıktan sonra ismini değiştiriyoruz. Bu açıkladığımız konuları uygularken zorluk yaşıyorsanız daha önce yayınlamış olan ilişkisel yazıları okuyabilirsiniz.
Temel işlemleri yapmaya devam ediyoruz. Diğer yazılarımızda da sıklıkça değindiğimiz verilerin getirilmesi ve yeni bir kayıt oluşturulması durumunda gerçekleşecek işlemleri sağlayacak metotları hazırlayalım. İş katmanı Controller olduğuna göre ve bu işleri ana sayfa üzerinde hazırlayacağımıza göre
HomeController
içerisinde bahsettiğimiz işlemleri gerçekleştiriyoruz.
using System.Linq;
using System.Web.Mvc;
using ValidationIslemler.Models;
namespace ValidationIslemler.Controllers
{
[HandleError]
public class HomeController : Controller
{
private MVCArticleEntities _db = new MVCArticleEntities();
public ActionResult Index()
{
return View(_db.OgretimUyesSet.ToList());
}
public ActionResult Create()
{
return View();
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Exclude = "id")] OgretimUyes yeniOgretimUyesiEkle)
{
if (!ModelState.IsValid)
return View();
try
{
_db.AddToOgretimUyesSet(yeniOgretimUyesiEkle);
_db.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
public ActionResult About()
{
return View();
}
}
}
Daha önceki yazılarımızda Create metodunu otomatik olarak oluşturur ve içerisinde yazılması gereken işlemleri bizler doldururduk. Fakat bu işlemi direk bizde yapabiliriz. Yeni kayıt işleminin gerçekleşebilmesi için iki adet create metoduna ihtiyaç vardır. Birincisi create edilecek değer bulunamazsa geldiği view 'a döndürür. Bir diğeri ise Create işlemini gerçekleştiren bölümdür. Dikkat edeceğiniz üzere ikinci Create metodunda gelen verinin modele uyumluluğunu da kontrol ediyoruz. Bu durumda ilk Validation kontrolünü gerçekleştirmiş oluyoruz. Bu kontrol esnasında ModelState değeri negatif dönerse yeni kayıt oluştur linkine tıklanan sayfaya geri dönecektir. Ayrıca bu durumda hataya düşüyorsanız elle ya da otomatik olarak oluşturmuş olduğunuz HTML sayfanın Model 'den veri aldığına emin olarak işlemlerinizi gerçekleştirebilirsiniz.
Yazımızın başında da bahsetmiştik, model üzerinde veri kontrollerini yapmak için gerekli işlemleri nasıl oluşturacağımızı inceliyor olacaktık. Bu aşamada ilk olarak projeye eklemiş olduğumuz Ado.Net Entity Model 'in design tarafında otomatik olarak oluşturulmuş olan cs koda göz atalım.
Gördüğümüz kadarı ile model içerisinde erişebildiğimiz sınıflar partial class olarak tanımlanmaktadır. Peki, "partial class neydi?" kısaca hatırlamak gerekirse;
Partial classların ne olduğunu kısaca hatırlamak gerekirse; fiziksel olarak yada aynı fiziksel dosyada (amacına göre ayrı iki .cs dosyasında olması makbul ve mantıklıdır) tanımlanan class tanımlarının tek bir class olarak çalışması ve derlenmesidir. Yani aslında bir sınıfın metotların farklı .cs dosyalarında tanımlayabilmeyi sağlar.
Bu durumda IDataErrorInfo ara yüzünü kullanabileceğimiz sınıfı partial olarak oluşturup içeriğini düzenleyeceğimiz duruma getiriyoruz. Model katmanının içerisine yeni bir sınıf ekliyoruz.
Models\OgretimUyesi.cs
using System.Collections.Generic;
using System.ComponentModel;
namespace ValidationIslemler.Models
{
public partial class OgretimUyesi
{
}
}
Entity Framework ile hazırlanmış olan data modelde partial sınıflar otomatik olarak oluşturulmaktadır. Entity Framework ile oluşturulan kodlarda otomatik olarak OnChanging ve OnChanged partial sınıfları oluşturulur.
Şimdi bizde oluşturmuş olduğumuz sınıfın içerisine Aşağıdaki metotları ekleyelim.
•OnIdChanging
•OnIdChanged
•OnAkademisyenChanging
•OnAkademisyenChanged
•OnUnvanChanging
•OnUnvanChanged
•OnDersSaatiChanging
•OnDersSaatiChange
OnChanging metotları OnChanged metotlarını tetikleyerek çalışır ve güncelleme işlemlerinde ID özelliklerinden yararlanarak bizim istediğimiz değişiklikleri yapamabilmemize olanak tanır.
Şimdi yukarıdaki bilgilerimizden yararlanarak eklemiş olduğumuz partial sınıfı biraz düzenleyelim. Yapacak olduğumuz değişiklikler ile son kullanıcının web form üzerinden Akademisyen ve Unvan bilgilerini boş girmemesi için gerekli olan kod parçasını oluşturalım.
Yazımızın içerisinde daha öncede bahsettiğimiz gibi Validation işlemlerini yaptığımız durumlarda IDataErrorInfo ara yüzünün özelliklerinden yararlanarak çok daha işlevsel bir hata kontrolü yapabilmemiz mümkündür.
using System.Collections.Generic;
using System.ComponentModel;
namespace ValidationIslemler.Models
{
public partial class OgretimUyesi:IDataErrorInfo
{
private Dictionary<string, string> _errors = new Dictionary<string, string>();
partial void OnAkademisyenChanging(string value)
{
if (value.Trim().Length == 0)
_errors.Add("Akademisyen", "Akademisyen bilgisi boş geçilemez.");
}
partial void OnUnvanChanging(string value)
{
if (value.Trim().Length == 0)
_errors.Add("Unvan", "Unvan bilgisi boş geçilemez.");
}
}
}
Yapmış olduğumuz işlem sonrasında örneğin akademisyen bilgisi boş geçildiğinden _errors Dictionary<> 'sine hata mesajı yazılacak ve kullanıcıya gösterilecektir.
IDataErrorInfo ara yüzü ile oluşturmuş olduğumuz sınıfı birlikte kullanmamız da gerekmektedir. Zaten OgretimUyesi sınıfına ara yüzü eklediğimiz zaman bize otomatik olarak aşadağıki metotları getirmektedir. Bakalım IDataErrorInfo ara yüzünün içerisinde hangi metotlar yer almaktaymış.
public interface IDataErrorInfo
{
string this[string columnName] { get; }
string Error { get; }
}
HomeController içerisinde oluşturmuş olduğumuz Crete() kontrolüne ilişkin kontrolleri üzerinde değişiklik yaptığımız OgretimUyesi.cs üzerinde IDataErrorInfo ara yüzünden yararlanarak Validation kontrolleri işlemlerini gerçekleştirdik.
OgretimUyesi sınıfının içerisinde eğer Akademisyen ve Unvan alanları boş geçilirse verilecek olan hata belirtilmiştir. Boş geçilmesi durumunda kolon adını kontrol edecek olan IDataErrorInfo ara yüzü olacaktır. Bu durumda ara yüze ilişkin özelliklerden
error
'a istediğimiz kontrol sonucunda hata oluşursa son kullanıcının sayfasında görüntülenmesine olanak tanırız. Ayrıca hata olması sonucunda geri dönüş değeri olarak boş string döndürelim.
Şimdi yukarıda açıklamış olduğumuz özelliklere göre IDataErrorInfo ara yüzü ile ilişkilendirelim ve özelliklerine gerekli değerleri atayalım.
using System.Collections.Generic;
using System.ComponentModel;
namespace ValidationIslemler.Models
{
public partial class OgretimUyesi : IDataErrorInfo
{
private Dictionary<string, string> _errors = new Dictionary<string, string>();
partial void OnAkademisyenChanging(string value)
{
if (value.Trim().Length == 0)
_errors.Add("Akademisyen", "Akademisyen bilgisi boş geçilemez.");
}
partial void OnUnvanChanging(string value)
{
if (value.Trim().Length == 0)
_errors.Add("Unvan", "Unvan bilgisi boş geçilemez.");
}
#region IDataErrorInfo Members
public string Error
{
get { return string.Empty; }
}
public string this[string columnName]
{
get
{
if (_errors.ContainsKey(columnName))
return _errors[columnName];
return string.Empty;
}
}
#endregion
}
}
Artık özellikler sonrasında boş geçilen değerler _errors koleksiyonuna eklecek ve son kullanıcı sayfasında gösterilecektir.
Bu arada yazımız boyunca yaptığımız bütün işlemleri OgretimUyesi sınıfının içerisinde yaptığımızı ve HomeController sınıfında hiç bir değişiklik yaptığımızı unutmayalım.
Sonuç olarak neler yaptığımızı tekrardan bir üstünden geçmek gerekirse, IDataErrorInfo ara yüzü yardımı ile otomatik olarak gösterilen kontrol mesajlarını nasıl oluşturabileceğimize göz attık. Daha sonrasında ise OnAkademisyenChanging() ve OnUnvanChanging partial metotlarını OgretimUyesi sınıfına ekledik. Bu eklediğimiz metotlar yardımı ile Asp.Net MVC Framework uygulamalarında kendimize özgü Validation mesajlarını nasıl gösterebileceğimizi öğrenmiş olduk.
Umarım yararlı olabilmiştir.
Turhal Temizer
turhal.temizer@csharpnedir.com
http://turhal.blogspot.com
Makale:
Asp.Net MVC Framework - Validation İşlemleri - II ASP.NET Turhal Temizer
Yazılan Yorumlar
Yorum Yaz
Bu konu hakkında yayınlanan yorum bulunmamaktadır.
"Yorum Yaz" tabını kullanarak sizde yorumlarınızı yazabilirsiniz.
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için
tıklayın
.
Üye değilseniz
Üyel Ol
linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
Bu Konuda Son 10
Eklenen Son 10
Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor
Dizayn ve Kodlama
bt
akademi
. Tüm Hakları Saklıdır © Copyright 2002-2009 c#nedir?com
Makaleler
Serbest Köşe
Makale Gönder
.Net TV
Video Gönder
Canlı Köşe
Kaynak Kod
Forum
Haberler
Röportajlar
Anketler
C# Nedir?
İletişim
Site Haritası
RSS
Favorilere Ekle
Üyelik
Hesap Aktivasyon
Ekibimiz
Ekibe Katıl