返回IEnumerable<>列表从视图的部分视图

时间:2013-04-21 20:38:36

标签: c# razor asp.net-mvc-4 ienumerable partial-views

我正在为一个膳食计划者做一个项目。我有一个简单的产品模型和一个Meal模型,它应该是一个产品集合。

我正在尝试创建一个“创建”视图,我可以在其中输入用餐的名称,我认为我会返回一个部分视图,其中包含可供选择的产品列表。

我知道您可以使用

将模型发送到局部视图
@Html.Partial("_ProductList", new MealPlanner.Models.Product())

我的PartialView需要

@model IEnumerable<MealPlanner.Models.Product>

这显然会引发错误,所以我如何将产品列表传递给我的部分?

1 个答案:

答案 0 :(得分:2)

好的,所以@scartag让我走上了正确的轨道,但我开始关注ViewModels并想出了以下内容......

public class ViewModelProducts
{
    public Meal Meal { get; set; }
    public virtual IEnumerable<Product> Products { get; set; }
}

这允许我传递创建视图所需的一切,然后我可以将产品列表发送到部分,如下所示...

@Html.Partial("_ProductList", Model.Products)

然后我所要做的就是自定义我的局部视图。 谢谢快速的依赖!