2009-04-29 7 views
1

ASP.NET MVCのビューにエンティティクエリの結果にLINQのを表示する方法:私はビューとディスプレイにこれを渡したい私はASP.NET MVCのアプリでリンク2エンティティクエリ式を持って

 
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 

結果。

私は

 
Return View(var) 

を試してみましたが、しかし、私は結果を反復処理するかどうかはわかりません。

私は.NETには一般的なので、どんな助けでも大歓迎です。

答えて

0

まず、クエリがちょっと混乱しているようです。 VB.NETについてはわかりませんが、Entity Frameworkモデルではないものを選択しているので、この場合は別のクラスが必要になります。あなたは強く型付けされたビューを生成したり、それを設定することにより、いずれかこれを行う

IEnumerable<Evaluation_Template> 

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

これは、私はそれを第三eidt投稿し続けているが、あなたのビューページは、次に取る必要がある何:)しますビューページのページディレクティブ。あなたはまた、(オーバーヘッドが少ない)しようとしていることをすることができますが、別のクラスがビューページに送信する必要があります。

+0

ご協力ありがとうございます。結果を反復処理する方法のサンプルコードを投稿できると思いますか? – CoolGravatar

+0

VB.NETの魔法については下記をご覧ください。私はまだあなたに新しいビューを作成し、強く型付けされたビューを選択し、次にModelName.Evaluation_Templateをタイプとして選択するよう促します。それはあなたが得る最高のガイドです。 – mhenrixon

1

あなたのビューで使用することを強く型付けされたオブジェクトを使用する場合は、あなたの視野に入ってからトップを変更する必要があるだろう...

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

\もちろん

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

には、渡したいモデルタイプにStringを置き換えてください。あなたのコレクションを渡すには、あなたのコレクションを渡すために使用します。

Return View(query.ToList()) 

...クエリがADO.NET EFからの何らかのIQueryableクエリであると仮定します。

次に、あなたのビューで使用すると、渡された結果を反復処理できます。

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

をその出力ビューのデータ・モデルに渡されたコレクション内の各文字列をだろう。

ビューに渡すための具体的な型を作成するためのベストプラクティスをお勧めしますが、ViewDataとも呼ばれます。

関連する問題