none
"The model item passed into the dictionary is of type ..." hatası RRS feed

  • Soru

  • Arkadaslar MVC yi yeni öğreniyorum,  yapmak istedigim veri tabanından sectiğim kolunun gösterilmesi aldıgım hata baslıkda nerde yanlış yapiyorum

    Controller:

                                        

    public class HomeController : Controller
        {
            //
            // GET: /Home/
            NorthwindEntities db = new NorthwindEntities();

            public ActionResult Index()
            {

                var q = from c in db.Customers select c.Address.ToList();


                return View(q);
            }



        }

    -----------------------------

    View:

                                                     

    @model IEnumerable<LinqSorgusuMVC.Models.Customers>

    @{
        ViewBag.Title = "Index";
    }

    <h2>Index</h2>

    <p>
        @Html.ActionLink("Create New", "Create")
    </p>
    <table>


    @foreach (var item in Model) {
        <tr>
            <td>
                @item.Address
            </td>






        </tr>
    }

    </table>

    -----------------------------------------------------------


    • Düzenleyen Serkan Canseven 20 Kasım 2015 Cuma 15:44 Başlık düzeltildi.
    20 Kasım 2015 Cuma 14:46

Yanıtlar

  • View'da model olarak beklediginiz:

    IEnumerable<LinqSorgusuMVC.Models.Customers>

    Oysa siz sunu yazmissiniz:

     var q = from c in db.Customers select c.Address.ToList();

    c.Address bir string. c.Address.ToList() ise o Address'in karakterlerinin List sekli. Yani:

    string s = "Hello";

    ise s.ToList() = List<char> {'H', 'e', 'l', 'l', 'o'};

    Soyle yazin: 

    var q = from c in db.Customers select c;
    return View(q);
    
    // ya da daha kisasi:
    var q = db.Customers;
    return View(q);
    

    Not: 

    var q = from c in db.Customers select c;

    burada q bir IEnumerable. Eger List isterneniz (o da bir IEnumerable) ToList() oncesi kismi parantez icine alin:

    var q = (from c in db.Customers select c).ToList();
    
    // ya da kisa Method syntax sekli
    var q = db.Customers.ToList();
    




    20 Kasım 2015 Cuma 15:36

Tüm Yanıtlar

  • View'da model olarak beklediginiz:

    IEnumerable<LinqSorgusuMVC.Models.Customers>

    Oysa siz sunu yazmissiniz:

     var q = from c in db.Customers select c.Address.ToList();

    c.Address bir string. c.Address.ToList() ise o Address'in karakterlerinin List sekli. Yani:

    string s = "Hello";

    ise s.ToList() = List<char> {'H', 'e', 'l', 'l', 'o'};

    Soyle yazin: 

    var q = from c in db.Customers select c;
    return View(q);
    
    // ya da daha kisasi:
    var q = db.Customers;
    return View(q);
    

    Not: 

    var q = from c in db.Customers select c;

    burada q bir IEnumerable. Eger List isterneniz (o da bir IEnumerable) ToList() oncesi kismi parantez icine alin:

    var q = (from c in db.Customers select c).ToList();
    
    // ya da kisa Method syntax sekli
    var q = db.Customers.ToList();
    




    20 Kasım 2015 Cuma 15:36
  • View'da model olarak beklediginiz:

    IEnumerable<LinqSorgusuMVC.Models.Customers>

    Oysa siz sunu yazmissiniz:

     var q = from c in db.Customers select c.Address.ToList();

    c.Address bir string. c.Address.ToList() ise o Address'in karakterlerinin List sekli. Yani:

    string s = "Hello";

    ise s.ToList() = List<char> {'H', 'e', 'l', 'l', 'o'};

    Soyle yazin: 

    var q = from c in db.Customers select c;
    return View(q);
    
    // ya da daha kisasi:
    var q = db.Customers;
    return View(q);

    Not: 

    var q = from c in db.Customers select c;

    burada q bir IEnumerable. Eger List isterneniz (o da bir IEnumerable) ToList() oncesi kismi parantez icine alin:

    var q = (from c in db.Customers select c).ToList();
    
    // ya da kisa Method syntax sekli
    var q = db.Customers.ToList();




    Cetin bey Customers tablosundaki adress satırını görüntülemek istiyorum
    20 Kasım 2015 Cuma 16:27
  • Model'e Customers geliyor, icerisinde Address de var ve zaten sizin View icerisinde:

    <td>
                @item.Address
            </td>

    olarak kullanmissiniz.

    IEnumerable<Customer>  bir dizi Customer nesnesi (Customers tablosunun bir satiri) getiriyor, her Customer nesnesinin bir Address propertysi (Custimors tablosundaki Address alani) mevcut. td taglari arasinda adresleri listeliyor zaten sizin view. Dedigim gibi yapip denediginizde baska hata mi aldiniz ?

    20 Kasım 2015 Cuma 17:13