我可以从控制器中将List <mymodel>返回到我的View吗? (MVC3)</为MyModel>

时间:2012-04-06 20:00:14

标签: asp.net-mvc-3 razor

我可以从我的Controller中将List返回到我的View,还是我需要将List包装在另一个类中,只是为了只返回一个类?

如果可以,我该如何遍历列表?我正在尝试这个(Razor),但Visual Studio对它并不满意:

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

1 个答案:

答案 0 :(得分: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)
{
}

我希望这会有所帮助。