2016-10-14 3 views
0

ich diesen Fehler habenASP.NET Erhalten Daten für Details der Fehler

Das Modellelement in das Wörterbuch übergeben ist vom Typ ‚System.Data.Entity.Infrastructure.DbQuery`1 [Teste.Models.Suppliers] ', aber dieses Wörterbuch benötigt einen Modellartikel vom Typ' Teste.Models.Suppliers '.

mein Controller

public ActionResult Details(int? id) 
{ 
    if (id == null) 
    { 
     return new HttpStatusCodeResult(HttpStatusCode.BadRequest); 
    } 

    var results = from c in db.Suppliers 
        where (c.ID == id) 
        select c; 

    /*Suppliers suppliers = db.Suppliers.Find(id);*/ 
    if (results == null) 
    { 
     return HttpNotFound(); 
    } 

    return View(results); 
} 

Ansicht

@model Teste.Models.Suppliers 

@{ 
    ViewBag.Title = "Details"; 
} 

<h2>Details</h2> 

<div> 
    <h4>Suppliers</h4> 
    <hr /> 
    <dl class="dl-horizontal"> 
     <dt> 
      @Html.DisplayNameFor(model => model.ID_Guard) 
     </dt> 

     <dd> 
      @Html.DisplayFor(model => model.ID_Guard) 
     </dd> 

     <dt> 
      @Html.DisplayNameFor(model => model.Supplier) 
     </dt> 

     <dd> 
      @Html.DisplayFor(model => model.Supplier) 
     </dd> 

     <dt> 
      @Html.DisplayNameFor(model => model.Description) 
     </dt> 

     <dd> 
      @Html.DisplayFor(model => model.Description) 
     </dd> 

     <dt> 
      @Html.DisplayNameFor(model => model.Enter) 
     </dt> 

     <dd> 
      @Html.DisplayFor(model => model.Enter) 
     </dd> 

     <dt> 
      @Html.DisplayNameFor(model => model.Exit) 
     </dt> 

     <dd> 
      @Html.DisplayFor(model => model.Exit) 
     </dd> 
    </dl> 
</div> 
<p> 
    @Html.ActionLink("Edit", "Edit", new { id = Model.ID }) | 
    @Html.ActionLink("Back to List", "Index") 
</p> 

, wie ich das lösen kann?

Gelöst

ich ein neues Projekt gemacht und hat gut funktioniert;) thx alle

+1

Sie können hier https://www.asp.net/mvc – jrummell

+1

Childish beginnen, aber: "teste"

+0

Ich sehe nicht, wo ist das Kindisch hier? Geoff James – Rgodinho

Antwort

2

Sie müssen die tatsächlichen Supplier zurückzukehren. Sie kehren Ihre Linq-Abfrage

So

if (results == null) 
{ 
    return HttpNotFound(); 
} 
return View(results); 

Um

Supplier supplier = results.FirstOrDefault(); 
if (supplier == null) 
{ 
    return HttpNotFound(); 
} 
return View(supplier); 

FirstOrDefault() Aufruf ändern wird Ihre Abfrage ausführen und entweder das erste Spiel oder null zurück.

+0

gibt mir jetzt einen anderen Fehler Das in das Wörterbuch übergebene Modellelement ist vom Typ 'Teste.Suppliers', aber dieses Wörterbuch benötigt ein Modellelement vom Typ 'Teste.Models.Suppliers'. – Rgodinho

+0

Mit Blick auf Ihre HTML haben Sie ein Viewmodel 'Teste.Models.Suppliers' - Sie müssen Ihren db.Supplier zu Ihrem Viewmodel-Lieferanten konvertieren, indem Sie es (am wahrscheinlichsten) zuordnen - das ist für Sie weiter zu untersuchen. – Darren

+0

wie kann ich es tun? – Rgodinho

Verwandte Themen