将EF对象从控制器传递到局部视图

时间:2017-07-12 09:36:37

标签: c# asp.net asp.net-mvc entity-framework model-view-controller

我对MVC很新,我想将模型中准备的Entity对象从控制器传递给局部视图。

模特:

public class HomeSlidesViewModel
{
    public HomeSlidesViewModel()
    {

    }
    public List<HomeSlides> homeSlides { get; set; }
}

在控制器中:

    using wrrc.ViewModels;

    public ActionResult GetHomeSlider(HomeSlidesViewModel model)
    {
        var getHomeSliders =
            from ghs
            in Tools.DataModel.HomeSlides
            select ghs;
        model.homeSlides = getHomeSliders.ToList();
        return PartialView("_HomeSliderLayout", model);
    }

在视图中:

@model wrrc.ViewModels.HomeSlidesViewModel

@foreach (var slide in Model)

问题是在foreach中使用Model,错误是:

  

foreach语句不能对类型的变量进行操作   'wrrc.ViewModels.HomeSlidesViewModel'因为   'wrrc.ViewModels.HomeSlidesViewModel'不包含公共   'GetEnumerator'的定义

请帮忙 感谢

2 个答案:

答案 0 :(得分:0)

执行此操作时:

@foreach (var slide in Model)

您告诉代码迭代Model列表。但Model不是列表。它只是一个对象:

@model wrrc.ViewModels.HomeSlidesViewModel

该对象包含属性,它是一个列表。也许你打算迭代一下?:

@foreach (var slide in Model.homeSlides)

答案 1 :(得分:0)

根据您的代码,您应该尝试使用以下内容:

@foreach (var slide in Model.homeSlides){
  // Your code goes here
}