在下面的代码中,我需要在data-slide-index =“0”上为每个孩子添加(+1)。
从0开始,然后是1,2,3,4,5
它应该是这样的:
data-slide-index="0"
data-slide-index="1"
data-slide-index="2"
我在想这样的事情。
int theCount = 0;
theCount += 1; // Adds 1 to count
但我不知道如何在代码中正确使用它。
@foreach (var image in @Model.Children)
{
foreach (dynamic d in image.imageDampSingle)
{
<a data-slide-index="0" href="@DAMP_Helper.GetImageCropperUrl(d, "projectSingle")"><img src="@DAMP_Helper.GetImageCropperUrl(d, "projectSingleThumb")" title="@Model.captionText" alt="@d.Image.nodeName" /></a>
或者有更简单/另一种方法吗?
提前致谢!
//勒
答案 0 :(得分:0)
Razor只是一个视图引擎,你在那里使用C#代码来做一些逻辑操作。递归方法是算法操作,它们能够在满足某个条件之前调用自身。在这种情况下,您可以使用帮助程序来实现这一点。您案例的一个例子:
@helper DoSomething(IEnumerable<Something> myList)
{
foreach (var item in myList)
{
@item.CertainProperty
@if (item.Children.Any())
{
@DoSomething(item.Children)
}
}
}
学习并阅读有关递归的信息,并会出现一个全新的基本概念世界。
http://en.wikipedia.org/wiki/Recursion_(computer_science) http://learnyousomeerlang.com/recursion
这是一个基本主题,当我读到这个主题时,我实际上正在编写一些代码片段,这是Python中的另一个例子:
def contaVogais(cadeia):
if not cadeia:
return 0
return (1 if cadeia[0] in 'aeiou' else 0) + contaVogais(cadeia[1:])
正如您在示例中所看到的,递归解决方案通常更优雅,但在某些情况下可能会降低代码性能。
答案 1 :(得分:0)
我找到了解决方案。见下文:
@{
var countNum = -1;
}
@foreach (var image in @Model.Children)
{
{
countNum += 1;
}
foreach (dynamic d in image.imageDampSingle)
{
<a data-slide-index="@countNum" href="@DAMP_Helper.GetImageCropperUrl(d, "projectSingle")"><img src="@DAMP_Helper.GetImageCropperUrl(d, "projectSingleThumb")" title="@Model.captionText" alt="@d.Image.nodeName" /></a>
}
}
欢迎您就改进代码发表意见。
//勒