如何在视图中使用 IEnumerable 集合调用局部视图

How do I call a partial view with IEnumerable collection in a view

我想在网页滑块页面中显示一个Slider是局部的

 <div class="slider">
        @Html.Partial("~/Views/slider/slider.cshtml", new IEnumerable<Mvc_baker.Areas.admin.Models.slidShow>)
    </div>

我看到这个错误

编译器错误消息:CS0118:'System.Collections.Generic.IEnumerable' 是一个 'type',但像“变量”

一样使用

我正在删除新的 IEnumerable 并将其保留为

@Html.Partial("~/Views/slider/slider.cshtml") in the view

我看到这个错误 异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。 第 6 行:@foreach(模型中的变量项) 第 7 行:{ 第 8 行:

此代码视图滑块

@model  IEnumerable< Mvc_baker.Areas.admin.Models.slidShow>

    @foreach (var item in Model)
    {
            <ul class="amazingslider-slides" style="display:none;">
                <li>
                    @{ 
                       string imageBase64 = Convert.ToBase64String(@item.FImage);
                       string imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
                    }
                    <img src="@imageSrc" class="info" width="100" height="50" />
                </li>
            </ul>
    }

这个问题是怎么解决的

您不能使用 new 关键字实例化 IEnumerable<T>,因为它是一个接口。您可以实例化一个 class 实现该接口,例如
new List<Mvc_baker.Areas.admin.Models.slidShow>()
查看 MSDN 以更好地理解接口

我解决了这个问题

  @Html.Action("slidshow", "slider")

 public  ActionResult slidshow()
    {
        return PartialView("~/Views/slider/slidshow.cshtml", GetSliderImages());
    }
  public IList<slidShow> GetSliderImages()
    {
        var q = db.slidShows.OrderByDescending(x => x.ID_SlidShow).Where(x=>x.st==false);
        return q.ToList();
    }