2009-04-29 2 views
1

ich in meinem ASP.NET MVC-app einen Link 2 Entity Abfrageausdruck haben Linq to Entity Abfrageergebnis angezeigt werden:Wie in ASP.NET MVC Ansicht

 
Dim var = From c In context.Evaluation_Template _ 
      From ae In context.Assigned_Evaluation _ 
      Join ua In context.User_Assignment On ae.Assignment_ID Equals ua.Assignment_ID _ 
      Select c.Evaluation_Name, ae.Due_Date, ua.Is_Started, ua.Is_Completed, ua.Is_Approved 

Ich möchte passieren diese zur Ansicht und Anzeige die Ergebnisse.

Ich habe

versucht
 
Return View(var) 

Aber ich bin nicht sicher, wie durch die Ergebnisse iterieren.

Ich bin neu bei .NET im Allgemeinen, so würde jede Hilfe sehr geschätzt werden.

Antwort

0

Zuerst sieht es so aus, als wäre Ihre Abfrage ein kleines Bisschen durcheinander gebracht. Ich bin unsicher über VB.NET, aber Sie würden in diesem Fall eine separate Klasse benötigen, weil Sie etwas auswählen, das nicht Ihr Entity Framework-Modell ist.

Dim var = From c In context.Evaluation_Template 
      .Include("Assigned_Evaluation") 
      .Include("User_Assignment") 
      Select c 

Dies ist das dritte eidt ist, halte ich es veröffentlichen :) Was nehmen Sie dann die Ansicht Seite muss:

IEnumerable<Evaluation_Template> 

Sie dies entweder tun, indem Sie eine stark typisierte Ansicht zu erzeugen oder es bei der Festlegung die Seitendirektive der Ansichtsseite. Sie könnten auch tun, was Sie versuchen (weniger Aufwand), aber dann würden Sie eine separate Klasse benötigen, um an die Ansichtsseite zu senden.

+0

Danke für Ihre Hilfe. Denkst du, dass du Beispielcode schreiben kannst, um das Ergebnis zu durchlaufen? – CoolGravatar

+0

Siehe unten für ein bisschen VB.NET Magie. Ich würde Sie dennoch drängen, eine neue Ansicht zu erstellen und eine stark typisierte Ansicht und dann ModelName.Evaluation_Template als Typ auszuwählen. Das ist die beste Anleitung, die Sie bekommen werden. – mhenrixon

1

Wenn Sie stark typisierte wollen Objekte in der Ansicht verwenden Sie müssten in Ihrer Ansicht nach gehen und ändern Sie die Spitze von ... \

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %> 

zu

<%@ Page Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of IEnumerable(Of String))" %> 

Natürlich Ersetzen Sie String durch Ihren Modelltyp, den Sie weitergeben möchten. Um Ihre Sammlung zu übergeben, verwenden Sie ...

... Angenommen Abfrage war eine Art von IQueryable Abfrage von ADO.NET EF.

Dann in Ihrer Ansicht, die Sie durch die Ergebnisse in übergeben laufen konnte.

<% For Each s As String In Model 
     %><%=s%><% 
    Next%> 

Das würde Ausgabe jede Zeichenfolge in der Sammlung in das Datenmodell Sicht übergeben.

Obwohl ich für Best Practices empfehlen, um einen Typ speziell für die Weitergabe in Ihre Ansichten zu erstellen, aka ViewData.