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

时间:2015-02-20 11:49:24

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

我希望在网页滑块页面中显示Slider是部分

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

此代码视图滑块

<div id="amazingslider-wrapper-1" style="float:left;  display:block;position:relative;max-width:605px;margin:5px 5px 60px;">
<div id="amazingslider-1" style=" display:block;position:relative;margin:0 auto;">

    @{
        string imageBase64 = "";
        string imageSrc = "";
    }
    @*@if (Model != null)*@


    @foreach (var item in Model)
    {
        <ul class="amazingslider-slides" style="display:none;">
            <li>

                @*<img src="~/Content/Images/main/sliderengine/main2.png" alt="main2" />*@
                imageBase64 = Convert.ToBase64String(@item.FImage);
                imageSrc = string.Format("data:image/gif;base64,{0}", imageBase64);
                @if (imageSrc != "")
                {
                    <img src="@imageSrc" class="info" width="100" height="50" />
                }

            </li>
        </ul>

    }

但是当跟踪代码视图时,foreach中的代码将无法运行 我觉得问题是 新名单() 当用这段代码替换时,我看到错误

  

编译器错误消息:CS0118:'System.Collections.Generic.IEnumerable'是'type',但用作'variable

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

这个问题如何解决

1 个答案:

答案 0 :(得分:1)

如果你只是想让它编译,请改为:

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

这会将其更改为实现List接口的IEnumerable类。

我想稍后您会想要将此作为模型属性传递:

@Html.Partial("~/Views/slider/slider.cshtml", Model.SlidesToShow)

这需要您将此属性添加到模型中:

public IEnumerable<Mvc_baker.Areas.admin.Models.slidShow> SlidesToShow { get; set; }

然后从控制器填充它并将其返回到这样的视图(假设FImage的属性是一个字符串而没有看到你的模型)。

model.SlidesToShow = new List<Mvc_baker.Areas.admin.Models.slidShow>() 
 { 
       new slidShow { FImage = "123"} 
 };
return View(model);