我有一个包含9张图片的“td”,我想把它们3除以3。所以我想看到这样的景象:
图1图2图3
图4图5图6
图7图8图9
这是我的视图代码。
@for (int k = 0; k < Model.Count; k++)
{
<td>
<img src="(Model[k].Pic)" width="80" height="90" />
</td>
}
我正试图通过以下代码分割图片:
@for (int k = 0; k < Model.Count; k++)
{
<td>
<div>
<img src="(Model[k].Pic)" width="80" height="90" />
</div>
@if (k % 3 == 0)
{
@:<div></div>
}
</td>
}
但我不能分开照片。这是一个简单的代码,但我失败了。问题在哪里?
最佳答案
您可以创建一个LINQ方法来创建具有指定大小的分区:
public static class PartitionExtensions
{
private static IEnumerable<IEnumerable<T>> ToSizedPartition<T>(IEnumerable<T> source, int size)
{
int currentPartitionCount = 0;
T[] array = null;
foreach (T item in source)
{
if (array == null)
{
array = new T[size];
}
array[currentPartitionCount] = item;
currentPartitionCount++;
if (currentPartitionCount == size)
{
yield return array;
currentPartitionCount = 0;
array = null;
}
}
if (array != null)
{
Array.Resize(ref array, currentPartitionCount);
yield return array;
}
}
}
然后更改视图:
<td>
@foreach (var partition in Model.ToSizedPartition(3))
{
<div>
@foreach(var item in partition)
{
<img src="@item.Pic" width="80" height="90" />
}
</div>
}
</td>
关于html - 如何在HTML代码中正确使用If模式语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27815026/