コントローラーからビューにリストを返すことはできますか?それとも、クラスのみを返すためだけに、別のクラスでリストをラップする必要がありますか?
これが可能な場合、リストを反復処理するにはどうすればよいですか? これ(Razor)を試していますが、Visual Studioは満足していません:
@model List<QueueItem>
.
.
.
@foreach (item in @Model)
コントローラーからビューにリストを返すことはできますか?それとも、クラスのみを返すためだけに、別のクラスでリストをラップする必要がありますか?
これが可能な場合、リストを反復処理するにはどうすればよいですか? これ(Razor)を試していますが、Visual Studioは満足していません:
@model List<QueueItem>
.
.
.
@foreach (item in @Model)
そのようにすることもできますが、ドメイン オブジェクトをビューに直接返すことは決してありません。通常、ビューに必要なフィールドのみを含むビューのビュー モデルがあります。
あなたのシナリオを考えると、ビューモデルにこのリストがあります:
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)
{
}
これが役立つことを願っています。