none
Asp.Net MVC DropDownList Selected value sorunu RRS feed

  • Soru

  • Merhaba,öncelikle MVC'ye yeni geçtim bu aşamalar zorda olsa atlatmaya çalışacağım.Katmanlı mimari şeklinde çalışıyorum

    KategoriDTO class mevcut ,sorun şu ki formumu dropdownlist dolduruyorum ancak kaydet butonuna basınca nedense her zaman bana value olarak 0 veriyor kod yapım şu şekilde

    views

    <div class="col-sm-5"> @Html.DropDownList("Kategorims", (IEnumerable<SelectListItem>)ViewBag.Kategorims, "Lütfen Seçiniz", new { @class = "form-control dropebiron" })

    </div>

      public void  GetKategori()
            {
    
                Kategoriler = new Kategori();
                List<SelectListItem> item = new List<SelectListItem>();
                foreach (var c in Kategoriler.KategoriListesi("Select * from pKategoriler"))
                {
                    item.Add(new SelectListItem
                    {
                        Text=c.KategoriAdi,
                        Value=c.Katid.ToString()
                    });
                }
                
         
                ViewBag.Kategorims = item;
                
            }
       [HttpPost]
            public ActionResult Newproduct(UrunDTO model, string returnurl)
            {
                YetkiKontrol();
              
    
               
                Urunler = new Urun();
                if (!ModelState.IsValid)
                {
                    ViewBag.Hata = "1";
                    GetKategori();
                    return View();
    
                }
    
               
                string sorgu = string.Format("insert into pUrunler (URUNADI,URUNKODU,ACIKLAMA,DETAY,TITLE,METAACIKLAMA,METAKELIME,ETIKET,ALISFIYAT,SATISFIYAT,KATID) values(@URUNADI,@URUNKODU,@ACIKLAMA,@DETAY,@TITLE,@METAACIKLAMA,@METAKELIME,@ETIKET,@ALISFIYAT,@SATISFIYAT,@KATID)");
                SqlParameter[] sqlParametre = new SqlParameter[11];
                sqlParametre[0] = new SqlParameter("@URUNADI", model.UrunAdi);
                sqlParametre[1] = new SqlParameter("@URUNKODU", model.UrunKodu);
                sqlParametre[2] = new SqlParameter("@ACIKLAMA", model.Aciklama);
                sqlParametre[3] = new SqlParameter("@DETAY", model.Detay);
                sqlParametre[4] = new SqlParameter("@TITLE", model.Title);
                sqlParametre[5] = new SqlParameter("@METAACIKLAMA", model.MetaAciklama);
                sqlParametre[6] = new SqlParameter("@METAKELIME", model.MetaKelime);
                sqlParametre[7] = new SqlParameter("@ETIKET", model.Etiket);
                sqlParametre[8] = new SqlParameter("@ALISFIYAT", Convert.ToDecimal(model.AlisFiyat));
                sqlParametre[9] = new SqlParameter("@SATISFIYAT", Convert.ToDecimal(model.SatisFiyat));
                sqlParametre[10] = new SqlParameter("@KATID", Convert.ToInt32(model.KatID));
               int result= Urunler.insert(sorgu, sqlParametre);
    
                if (result>0)
                {
                    ViewBag.Hata = "1";
                    return View();
                }
                
                return RedirectToAction("Product");
                }



    9 Nisan 2016 Cumartesi 07:42

Yanıtlar

  • @model Service.DTO.UrunDTO

    @{
        ViewBag.Title = "Newproduct";
        Layout = "~/Areas/app/Views/Shared/_Layout.cshtml";
        List<SelectListItem> katrgoriler = (List<SelectListItem>)ViewData["Kategoriler"];
    }


                                    <div class="form-group groupfrm">
                                        <label for="inputEmail3" class="col-sm-2 control-label frmlabel">Kategori</label>
                                        <div class="col-sm-5">
                                            @Html.DropDownListFor(m => m.KatID, katrgoriler, "Lütfen Seçiniz", new { @class = "form-control dropebiron" })
                                           
                                        </div>
                                    </div>

    • Yanıt Olarak İşaretleyen Resul Genç 12 Nisan 2016 Salı 06:23
    12 Nisan 2016 Salı 06:23

Tüm Yanıtlar

  • Hiç kimsenin bir fikri yok mu ?
    9 Nisan 2016 Cumartesi 12:26
  • Hata bu satırda Kategorims yazmışsın;

    @Html.DropDownList("KatID", (IEnumerable<SelectListItem>)ViewBag.Kategorims, "Lütfen Seçiniz", new { @class = "form-control dropebiron" })
    Ben cevap verip vermemede çok kararsız kaldım. Bi kaç kere yazıp sildim, çümkü insanlara "bu yanlış, bu MVC değil" dediğim zaman nedense kızıyorlar.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    9 Nisan 2016 Cumartesi 15:39
    Moderatör
  • nedir peki ? yada nasıl olmalı sence
    10 Nisan 2016 Pazar 12:23
  • ayrıca hata Kategorims den kaynaklanmıyor hatanın sebebini buldum bu arada bunu da belirtmek istedim
    10 Nisan 2016 Pazar 12:34
  • Belirttiğin için teşekkürler, evet bu kod içinde onlarca hata oluşabilir, doğrudur.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    11 Nisan 2016 Pazartesi 04:57
    Moderatör
  • ayrıca hata Kategorims den kaynaklanmıyor hatanın sebebini buldum bu arada bunu da belirtmek istedim
    Çözümü paylaşsaydınız keşke aynı sorunu yaşayan yada yaşacaklar için.
    11 Nisan 2016 Pazartesi 07:57
  • @model Service.DTO.UrunDTO

    @{
        ViewBag.Title = "Newproduct";
        Layout = "~/Areas/app/Views/Shared/_Layout.cshtml";
        List<SelectListItem> katrgoriler = (List<SelectListItem>)ViewData["Kategoriler"];
    }


                                    <div class="form-group groupfrm">
                                        <label for="inputEmail3" class="col-sm-2 control-label frmlabel">Kategori</label>
                                        <div class="col-sm-5">
                                            @Html.DropDownListFor(m => m.KatID, katrgoriler, "Lütfen Seçiniz", new { @class = "form-control dropebiron" })
                                           
                                        </div>
                                    </div>

    • Yanıt Olarak İşaretleyen Resul Genç 12 Nisan 2016 Salı 06:23
    12 Nisan 2016 Salı 06:23
  • E o satırdan kaynaklanıyor işte ahahaa :)

    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    12 Nisan 2016 Salı 06:34
    Moderatör
  • yok o satırdan kaynaklanmıyor ben mvc yeni başladığım için pek model kavramını bilmiyorum bu nedenle modeli ilgili view de formcollection ile değeri ala bildiğimi fark ettim bu nedenle sorunun modelden kaynaklandığını anladım çözüm de bu şekilde :D
    19 Nisan 2016 Salı 07:28