2011-07-30 7 views
0

オブジェクトのリストを返すLINQ to SQL関数の呼び出しからの結果をループしたいと思います。しかし、私は、(foreachを使用するために)L2Sオブジェクトを扱うためのビューをどのように得るかについてはわかりません。Razorビューを取得してLinqからSQLへのオブジェクトを理解する

ViewData["list"] = db.Users.ToList(); 
+0

これは適切な場所ではありません。あなたはあなたのモデルでそれを行う必要があります。 – Mrchief

+0

見ることが必要な場合は、スキャフォールディングを生成してください。 –

答えて

1

コントローラ:コントローラで

public class MyClassController : Controller 
{ 
    private ProjectContext db = new ProjectContext(); 

    // 
    // GET: /MyClass/ 

    public ViewResult Index() 
    { 
     return View(db.MyClasses.ToList()); 
    } 
} 

ビュー:

@model IEnumerable<MvcApplication1.Models.MyClass> 


@foreach (var item in Model) { 
    <div> 
    <!-- HTML here like @item.Title --> 
    </div> 
} 

これは強く型付けされたビューの方法論です。ダイナミックなアプローチを使用してもそれほど違いはありません。動的オブジェクトのプロパティにリストを代入するだけで、foreach(var item in Model)の代わりにforeach(var item in ViewBag.listProperty)になります。またはViewDataでViewData.Add('list', db.MyClasses.ToList())を割り当て、foreachはforeach(var item in ViewData['list'])になります。私は強く型付けされたアプローチを好んでいます。

EDIT:良い点がコメントに盛り込まれています(強く型付けされたアプローチをほとんど排他的に使用しているので、私は忘れてしまった)。この場合は、List<MyClass>として保存されますが、暗黙的に引き出すこともできます。IEnumerable<MyClass>

+0

しかし動的なケースでは、ViewData ['list']をキャストしなければなりません。そしてここで私はそれをどのような型にキャストするのか分からない。 – Jason

+1

@Jason: 'List 'またはあなたのケース 'List 'に(おそらく)。常にIEnumerable 'にキャストすることができます。ここで、Tはエンティティクラスです。 ( 'IEnumerable ') –

関連する問題