【问题标题】:How do I call a partial view with List collection in a view如何在视图中调用带有列表集合的局部视图
【发布时间】:2023-03-18 03:24:01
【问题描述】:

我想在网页滑块页面中显示一个滑块

   @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>

    }

但是当trace code view时foreach里面的代码不会运行 我认为问题是 新列表() 当用此代码替换时,我看到错误

编译器错误消息:CS0118:“System.Collections.Generic.IEnumerable”是“类型”,但用作“变量”

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

如何解决这个问题

【问题讨论】:

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


    【解决方案1】:

    如果你只是想让这个编译改变它:

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

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

    我猜你稍后会希望将其作为模型属性传递,如下所示:

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

    【讨论】:

    • 我是 @Html.Partial("~/Views/slider/slider.cshtml", new List()) 在 _Layout 页面不知道模型。 SlidesToShow
    • @amir1364 只需在视图顶部添加@using System.Collections.Generic 即可导入命名空间。
    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多