none
Mvc Kayıt problemi RRS feed

  • Genel Tartışma

  • merhaba mvc ye yeni başladım ogrenme adına bir uygulama yapıyorum ... makalede kayıt işlemi yaparken KategoriID boş geliyor sorun ne olabilir yardımcı olursanız sevinirim...

    cshtml

    @{
        ViewBag.Title = "MakaleKaydet";
        Layout = "~/Views/Shared/Admin.cshtml";
    }
    @model MvcBlog.Models.Makale
    
    <h2>MakaleKaydet</h2>
    
    @using (Html.BeginForm("MakaleKaydet", "Admin", FormMethod.Post, new {enctype="multipart/form-data" }))
    {
        <table>
            <tr>
                <td>Kategoriler </td>
    
               
                <td>
    
                    <select id="Select1" class="form-control" style="width:220px" name="KategoriID">
                        @foreach (var item in ViewBag.Kategori)
                        {
                             <option value="@item.KategoriID">
                                @item.KategoriAdi
                             </option>
                        }
                       
    
                    </select>
                </td>
            </tr>
             <tr>
                <td> Makale Başlık</td>
    
               
                <td>
                    <input id="Text1" name="MakaleBaslik" style="width:220px" class="form-control" type="text" />
                </td>
            </tr>
             <tr>
                <td> Makale Özet </td>
    
               
                <td>
                    <input id="Text2" name="MakaleOzet" style="width:220px" class="form-control" type="text" /></td>
            </tr>
             <tr>
                <td> Makale İçerik </td>
    
               
                <td>
                    <input id="Text3" name="MakaleIcerik" style="width:300px; height:150px" class="form-control" type="text" /></td>
            </tr>
             <tr>
                <td>Makale Resim </td>
    
               
                <td>
                    <input id="File1" name="Resim" class="form-control" style="width:220px" type="file" /></td>
            </tr>
    
    
    
           
    
             <tr>
                <td>
                    <input id="Submit1" type="submit" class="btn-success" style="width:75px" value="Kaydet" /> </td>
    
               
                <td></td>
            </tr>
        </table>
        
        
        
        
    }

    controller

     public ActionResult MakaleKaydet()
            {
                ViewBag.Kategori = db.Kategori.ToList();
                return View();
            }
    
            [HttpPost]
            public ActionResult MakaleKaydet(Makale makale,HttpPostedFileBase Resim)
            {
                if (makale!=null)
                {
                    
                    makale.Tarih = DateTime.Now;
                    makale.MakaleResim = ResimKaydet(Resim);
                    
                  
                    db.Makale.Add(makale);
                    db.SaveChanges();
    
    
                   
                }
               
                return View();
            }


    10 Temmuz 2015 Cuma 12:00

Tüm Yanıtlar

  • Bunları biyerde görüp mü yapıyorsunuz? yoksa doğaçlama mı ilerliyorsunuz?

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

    10 Temmuz 2015 Cuma 12:21
    Moderatör
  • merhaba

    sayfada seçtiğiniz karegoriID değerini MakaeKaydet metodunda parametre olarak almınız gerekiyor

    [HttpPost] public ActionResult MakaleKaydet(Makale makale,HttpPostedFileBase Resim,string KategoriID)

    {

    Debug.WriteLine(KategoriID);//KONTROL EDEBİLİRSİNİZ

    makale.kategori = KategoriID//veritabanında kategoriID değerini string olarak tuttuğunuzu varsaydım.

    //......

    }


    • Düzenleyen agidow 10 Temmuz 2015 Cuma 13:21 denedim oldu
    10 Temmuz 2015 Cuma 13:10
  • Kullanım şekilleri yanlış. Öncelikle Model kullanıyorsun ve kafana göre Input lara id ler atamışsın. Model bunu bulamaz. Önun için örnek kullanımı

    @Html.TextBoxFor(p=>p.Baslik,new{ @class="input-class",style=""})
    Bu şekilde Modeleme kullanılır. Böylelikle inputlar yerine bunu kullandığında Modele uygun inputar oluşacaktır. 

    Aynı şekilde DropDownList de bu şekilde olması gerekir. DropDownListFor kullanılarak. Bu makaleyi okuyabilirsin.

    Uploadlarda genellikle ben Request.Files kullanıyorum. Parametre olarak alınca null geliyor. Çok da uğraşmadım parametre olarak almayı. Request.Files ile kontrol ettirip dosyayı alabilirsin.


    Barış Ceviz - Software Developer
    Web Blog Adresi

    10 Temmuz 2015 Cuma 14:37
    Moderatör
  • MakaleID yi zaten database e kaydedince otomatik vericek. Ayrıca Html helperda ki texbox,textboxfor vs. kullanmadan da inputlar ile de yapabilirsin. Inputların name ini tablondaki alanlarla aynı şekilde vermen gerekiyor. Örnek verecek olursak MakaleIcerik adlı bir alan var tablonda. Inputun name ine makaleIcerik yazarsan controller bunu yakalayamaz MakaleIcerık yapman gerekiyor. Kodlarında herhangi bir sıkıntı yok gözüküyor. Breakpoint koyup post actionuna nasıl geliyor verin baktın mı ?

    Gürkan nasıl sıkıntı yok? Bu nedir?

       <select id="Select1" class="form-control" style="width:220px" name="KategoriID">
                        @foreach (var item in ViewBag.Kategori)
                        {
                             <option value="@item.KategoriID">
                                @item.KategoriAdi
                             </option>
                        }


    Mail Blog Web Site

    11 Temmuz 2015 Cumartesi 16:06