0

コントローラーからビューにリストを返すことはできますか?それとも、クラスのみを返すためだけに、別のクラスでリストをラップする必要がありますか?

これが可能な場合、リストを反復処理するにはどうすればよいですか? これ(Razor)を試していますが、Visual Studioは満足していません:

@model List<QueueItem>
.
.
.
@foreach (item in @Model)
4

1 に答える 1

0

そのようにすることもできますが、ドメイン オブジェクトをビューに直接返すことは決してありません。通常、ビューに必要なフィールドのみを含むビューのビュー モデルがあります。

あなたのシナリオを考えると、ビューモデルにこのリストがあります:

public class MyViewModel
{
     public IEnumerable<QueueItem> QueueItems { get; set; }
}

アクション メソッドで、サービス/リポジトリの呼び出しからこれらの項目を設定すると、このビュー モデルがビューに返されます。

public ActionResult List()
{
     MyViewModel viewModel = new MyViewModel
     {
          QueueItems = queueItemRepository.GetAllQueueItems()
     };

     return View(viewModel);
}

ビューでは、アイテムをループして、実行する必要があることを実行します。

@foreach (var item in Model.QueueItems)
{
}

これが役立つことを願っています。

于 2012-04-07T06:13:27.840 に答える