获取所有项目并仅限制img标记的数量

时间:2017-07-22 11:11:20

标签: c# asp.net-mvc umbraco7

我正在寻找的只是限制缩略图的数量(img),并保持foreach不变。

我们说文件夹中有6个项目,我需要获取所有项目 但只有前两个图像标签。

这可能吗?

这是我的代码,

@{
    string folderPath = Server.MapPath("/media");
    string[] files = Directory.GetFiles(folderPath + "/" + Model.Content.GetPropertyValue("Name"));
}
@foreach (string item in files){

<li data-src="/media/@Model.Content.GetPropertyValue("Name")/@Path.GetFileName(item)" data-sub-html="">
                    <a href="">
                        <img src="/media/@Model.Content.GetPropertyValue("Name")/@Path.GetFileName(item)"/>
                    </a>
                </li>
} 

所需的最终结果如下所示:

<li data-src="/media/806.png" data-sub-html="">
                        <a href="">
                            <img src="/media/806.png"/>
                        </a>
                    </li>
    <li data-src="/media/853.png" data-sub-html="">
                        <a href="">
                            <img src="/media/853.png"/>
                        </a>
                    </li>
    <li data-src="/media/089.png" data-sub-html="">
                        <a href="">
                        </a>
                    </li>
    <li data-src="/media/931.png" data-sub-html="">
                        <a href="">
                        </a>
                    </li>
    <li data-src="/media/061.png" data-sub-html="">
                        <a href="">
                        </a>
                    </li>
    <li data-src="/media/735.png" data-sub-html="">
                        <a href="">
                        </a>
                    </li>

1 个答案:

答案 0 :(得分:1)

为什么不使用带索引的for循环,然后执行if语句来限制显示?

如:

@{
    string folderPath = Server.MapPath("/media");
    string[] files = Directory.GetFiles(folderPath + "/" + Model.Content.GetPropertyValue("Name"));
}

@for(int i =0; i < files.Length; i++)
{
    var item = files[i];
    <li data-src="/media/@Model.Content.GetPropertyValue("Name")/@Path.GetFileName(item)" data-sub-html="">
                    <a href="">
                        // when index is 0 and 1 (first two), render image
                        @if(i <= 1)
                        {
                            <img src="/media/@Model.Content.GetPropertyValue("Name")/@Path.GetFileName(item)"/>
                        }
                    </a>
                </li>
}