Ich habe den Fehler von meinem Code untenkann nicht implizit Typ ‚System.Collections.Generic.List zu‘ System.Collections.Generic.IEnumerable Fehler in asp.net Mvc
Fehler CS0266 kann nicht implizit konvertiert Typ umwandeln 'System.Collections.Generic.List to' System.Collections.Generic.IEnumerable < Theme_Hisaab.Models.CustomerLedger> '. Eine explizite Konvertierung vorhanden ist (möglicherweise fehlt eine Guss?)
-Controller-Code
public class CustomerLedgerController : Controller
{
// GET: CustomerLedger
Hisaab_ApplicationEntities7 db = new Hisaab_ApplicationEntities7();
IEnumerable<CustomerLedger> CustomerLedger = null;
public ActionResult Index()
{
CustomerLedger = (from cus_data in db.Customer_Data
join so in db.SalesOrder on cus_data.Customer_ID equals so.SalesOrder_ID
join sd in db.SalesOrderDetail on so.SalesOrder_ID equals sd.SalesOrderDetail_ID
select new
{
cus_data.Customer_Name,
cus_data.Customer_ID,
so.SalesOrder_ID,
so.FK_Customer_ID,
sd.SalesOrderDetail_ID,
sd.SalesOrder_Unit_Price,
sd.SalesOrder_Total,
sd.FK_SalesOrder_ID,
sd.FK_Product_ID
}
).ToList();
return View(CustomerLedger);
}
}
Ansichtsmodell
public class CustomerLedger
{
public int Customer_ID { get; set; }
public string Customer_Name { get; set; }
public int SalesOrder_ID { get; set; }
public Nullable<int> FK_Customer_ID { get; set; }
public Nullable<System.DateTime> SalesOrderDelivery_Date { get; set; }
public string Product_Name { get; set; }
public Nullable<int> SalesOrder_Quantity { get; set; }
public Nullable<double> SalesOrder_Unit_Price { get; set; }
public Nullable<double> SalesOrder_Total { get; set; }
public int SalesOrderDetail_ID { get; set; }
public Nullable<int> FK_SalesOrder_ID { get; set; }
public Nullable<int> FK_Product_ID { get; set; }
public Customer_Data Customer_Data { get; set; }
public SalesOrderDetail SalesOrderDetail { get; set; }
public SalesOrder SalesOrder { get; set; }
}
Ansicht
@model IEnumerable<Theme_Hisaab.Models.CustomerLedger>
....
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Customer_ID)
</th>
<th>
@Html.DisplayNameFor(model => model.Customer_Name)
</th>
<th>
@Html.DisplayNameFor(model => model.SalesOrder_ID)
</th>
....
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Customer_ID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Customer_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.SalesOrder_ID)
</td>
....
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}
</table>
Bitte beachten Sie, dass das Model-View-Controller-Tag für Fragen zum Muster dient. Es gibt ein bestimmtes Tag für die ASP.NET-MVC-Implementierung. –
Ihre Abfrage erstellt eine Sammlung anonymer Objekte (die in der Ansicht nicht funktionieren). Sie müssen ein Ansichtsmodell erstellen, das die von Ihnen benötigten Eigenschaften enthält, und die Ergebnisse in eine Sammlung dieses Modells projizieren (mithilfe von 'Select new MyViewModel {CutomerName = cus_data.Customer_Name, ..., SalesOrderID = so.SalesOrder_ID, ..... } ' –
danke @StephenMuecke es funktioniert für mich sehr viel danken und die Logik zu erläutern. –