none
MVC4 te Form Kayıtı yaparken NullReferenceException hatası alıyorum RRS feed

  • Soru

  • merhabalar,

    mvc ye yeni geçiş yapıyorum form kaydı yapmaya çalışıyorum ama hata alıyorum kodlarım aşağıdaki gibi nerede hata yapıyorum?

    View

    @{
        Layout = null;
    }
    @model MVCNET.Models.Musteri
    <h2>FormDoldur</h2>
    <br/>
    @using (Html.BeginForm("Index", "Deneme", FormMethod.Post, null))
    {
    <p>Kullanıcı Adı</p>
    @Html.TextBoxFor(a => a.KullaniciAdi)
    <p>Adınız</p>
    @Html.TextBoxFor(a => a.Ad)
        <p>Soyadınız</p>
    @Html.TextBoxFor(a => a.Soyad)
        <p>E-Mail Adresiniz</p>
    @Html.TextBoxFor(a => a.Email)
        <p>Şifreniz</p>
    @Html.TextBoxFor(a => a.Sifre)
    <input type="submit" value="Ekle" />
    }

    Controller

           
    
    
    
    
    
           private MVCContext _DB;
            public ActionResult Index()
            {
                return View();
            }
            [HttpPost]
            public ActionResult Index(Musteri m)
            {
                _DB.Musteris.Add(m);
                v.SaveChanges();
                ModelState.Clear();
                return View();
            }

    12 Mayıs 2015 Salı 20:47

Yanıtlar

Tüm Yanıtlar

  • merhabalar,

    mvc ye yeni geçiş yapıyorum form kaydı yapmaya çalışıyorum ama hata alıyorum kodlarım aşağıdaki gibi nerede hata yapıyorum?

    View

    @{
        Layout = null;
    }
    @model MVCNET.Models.Musteri
    <h2>FormDoldur</h2>
    <br/>
    @using (Html.BeginForm("Index", "Deneme", FormMethod.Post, null))
    {
    <p>Kullanıcı Adı</p>
    @Html.TextBoxFor(a => a.KullaniciAdi)
    <p>Adınız</p>
    @Html.TextBoxFor(a => a.Ad)
        <p>Soyadınız</p>
    @Html.TextBoxFor(a => a.Soyad)
        <p>E-Mail Adresiniz</p>
    @Html.TextBoxFor(a => a.Email)
        <p>Şifreniz</p>
    @Html.TextBoxFor(a => a.Sifre)
    <input type="submit" value="Ekle" />
    }

    Controller

           
    
    
    
    
    
           private MVCContext _DB;
            public ActionResult Index()
            {
                return View();
            }
            [HttpPost]
            public ActionResult Index(Musteri m)
            {
                _DB.Musteris.Add(m);
                v.SaveChanges();
                ModelState.Clear();
                return View();
            }


    Hangi satırda ne hatası aldığını da yazsaydın iyiydi.

    .Net Developer

    12 Mayıs 2015 Salı 20:59
  • private MVCContext _DB = new MVCContext();
    çok kötü bi giriş yapmışsın. v ne orda? o anlaşımıyor

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com



    12 Mayıs 2015 Salı 21:31
    Moderatör
  •  _DB.Musteris.Add(m); satırında hata alıyorum aldığım hatayı başlıktada belirttiğim gibi "NullReferenceException" hatası alıyorum.

    13 Mayıs 2015 Çarşamba 06:38
  • private MVCContext _DB = new MVCContext();
    çok kötü bi giriş yapmışsın. v ne orda? o anlaşımıyor

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com




    nedemek istediğinizi anlamadım v derken ?
    13 Mayıs 2015 Çarşamba 06:44
  •  v.SaveChanges();
    satırındaki v

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    13 Mayıs 2015 Çarşamba 06:48
    Moderatör
  •  v.SaveChanges();
    satırındaki v

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    sanırım kopyala yapıştır yaparken oldu o normalde model adı olan _DB olması gerekli

    buarada sorun çözüldü dediğiniz gibi

    private MVCContext _DB = new MVCContext();

    yapınce düzeldi.

    teşekkür ederim.

    13 Mayıs 2015 Çarşamba 07:05
  • Müşteri modelinizin içerisinde ki alanlar 

    Örneğin şu şekilde tanımlayalım Müşteri modelini



      public partial class Musteri

        {

            public int id { get; set; }

            public string KullaniciAdi { get; set; }

            public Nullable<string> Soyad { get; set; }

            public string Sifre { get; set; }

        }

    Yukarıdaki tanımlamada KullanıcıAdi alanının null olamayacağını garanti etmiş olursunuz ama soyad alanı için null olabilir demiş olursunuz, bu durumda KullanıcıAdi null geldiğinde yani form alanınız daki değer doğru set edilmediğinde NullReferenceException hatası alırsınız aynı durum Soyad alanı için gerçekleşirse hata almadan çalışır.

    null olabilecek değeri Controller->Method içerisinde 

    public ActionResult MyMethod(int ?id){

     // ? işareti kullanarak da belirtebilirsiniz.

    }

    Başka bir noktayı atlamadım ise sorununuzun bu durum ile doğrudan ilşkili olduğunu düşünüyorum.

    birde 

        _DB.Musteris.Add(m);
                v.SaveChanges();

    _DB.SaveChanges() olmalı 


    • Düzenleyen rosliycs 13 Mayıs 2015 Çarşamba 07:08
    13 Mayıs 2015 Çarşamba 07:07
  •  v.SaveChanges();
    satırındaki v

    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    sanırım kopyala yapıştır yaparken oldu o normalde model adı olan _DB olması gerekli

    buarada sorun çözüldü dediğiniz gibi

    private MVCContext _DB = new MVCContext();

    yapınce düzeldi.

    teşekkür ederim.

    Aklında olsun, destructor ekleyip _DB yi dispose etmeyi unutma.

    ~HomeController()
    {
      _DB.Dispose();
    }

    Ayrıca kayıt işlerini şu şekilde yap;

    public ActionResult Create(Musteri Model)
    {
      _DB.Entry(Model).State = EntityState.Added;
      _DB.SaveChanges();
      return RedirectToAction("Index");
    }

    Edit iken;

    [HttpPost]
    public ActionResult Edit(Musteri Model)
    {
      _DB.Entry(Model).State = EntityState.Modified;
      _DB.SaveChanges();
      return RedirectToAction("Index");
    }

    Silerken;

    public ActionResult Remove(int? Id)
    {
      _DB.Entry(_DB.Musteriler.Find(Id)).State = EntityState.Deleted;
      _DB.SaveChanges();
      return RedirectToAction("Index");
    }


    www.mvcblog.org
    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    13 Mayıs 2015 Çarşamba 10:23
    Moderatör