Şimdi Ara

MVC 3 Yardım !!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir (1 Mobil) - 2 Masaüstü1 Mobil
5 sn
3
Cevap
0
Favori
1.025
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Bu yazdığım Actionlar

    public ActionResult Orders()
    {
    NorthwindEntities db = new NorthwindEntities();
    return View(db.Orders.ToList());


    }

    public ActionResult OrderDetails(int id)
    {
    NorthwindEntities db = new NorthwindEntities();


    var query = from od in db.Order_Details
    join p in db.Products
    on od.ProductID equals p.ProductID
    where od.OrderID == id
    select new
    {
    od.OrderID,
    od.ProductID,
    p.ProductName,
    od.Quantity,
    od.UnitPrice,
    od.Discount,

    };

    return View(query.ToList());

    }

    Bu View
    @model List<MvcApplication2.Models.Order_Detail>
    @{
    Layout = null;
    }

    <!DOCTYPE html>

    <html>
    <head>
    <title>OrderDetails</title>
    </head>
    <body>
    @{
    foreach (var item in Model)
    {
    @Html.DisplayFor(x => item.OrderID)
    @Html.DisplayFor(y => item.ProductID)
    @Html.DisplayFor(y => item.Product.ProductName);
    @Html.DisplayFor(z => item.Quantity)
    @Html.DisplayFor(z => item.UnitPrice)
    @Html.DisplayFor(z => item.Discount)
    }
    }
    </body>
    </html>



    Buda aldığım Hata

    The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[<>f__AnonymousType0`5[System.Int32,System.Int32,System.Int16,System.Decimal,System.Single]]', but this dictionary requires a model item of type 'System.Collections.Generic.List`1[MvcApplication2.Models.Order_Detail]'.

    Açıklama: Geçerli web isteği yürütülürken işlenmemiş özel durum oluştu. Lütfen hata ve kod içinde kaynaklandığı yer hakkında daha fazla bilgi almak için yığın izlemesini gözden geçirin.

    Özel Durum Ayrıntıları: System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[<>f__AnonymousType0`5[System.Int32,System.Int32,System.Int16,System.Decimal,System.Single]]', but this dictionary requires a model item of type 'System.Collections.Generic.List`1[MvcApplication2.Models.Order_Detail]'.







  • Bak anonim tipler derlendikten sonra otomatik olarak oluşturulur senin burada oluşturduğun :
    var query = from od in db.Order_Details  
    join p in db.Products
    on od.ProductID equals p.ProductID
    where od.OrderID == id
    select new
    {
    od.OrderID,
    od.ProductID,
    p.ProductName,
    od.Quantity,
    od.UnitPrice,
    od.Discount,

    };


    query değişkeni aslında Order_Detail tipinden bir değişken değil, kendisi bambaşka bir değişken. Bunun için ayrı bir model yazman lazım
    Örnek :
     
    public class Details
    {

    public int OrderId { get; set; }
    public int ProductId { get; set; }
    public string ProductName { get; set; }
    public int Quantity { get; set; }
    public int UnitPrice { get; set; }
    public int Discount { get; set; }
    }



    Details senin modelin olacak ve yapman gereken :

    select new Details { OrderId = od.OrderID .....   }



    ve view'de yapman gereken :
    @model List<MvcApplication2.Models.Details>

    Dipnot: Ekstradan model yazmak istemem ben diyorsan , doğrudan Order_Details sınıfı listesi şeklinde alabilirsin, tercih meselesi ;)
    MVC'yi tercih ettiğin için pişman olmayacaksın ;)



    < Bu mesaj bu kişi tarafından değiştirildi wqlky -- 14 Aralık 2013; 14:42:35 >




  • Adamsın :D !!
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.