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

时间:2015-02-20 10:26:36

标签: asp.net-mvc asp.net-mvc-4 razor

我希望在网页滑块页面中显示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',但用作'variable

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

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

我看到了这个错误 异常详细信息:System.NullReferenceException:未将对象引用设置为对象的实例。 第6行:@foreach(模型中的var项) 第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>
    }

这个问题如何解决

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

iam解决了这个问题

  @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();
    }