【问题标题】:How to add +1 to the number?如何在号码上加+1?
【发布时间】:2015-01-31 10:23:19
【问题描述】:

此代码动态创建缩略图:

@foreach (var image in Umbraco.Field("Photo").ToString().Split(',').Select(x=>Umbraco.Media(int.Parse(x))))
{
    <li slideIndex="0"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
}

我需要一个脚本来为 [slideIndex] 添加 +1,以获得此结果:

<li slideIndex="0"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
<li slideIndex="1"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
<li slideIndex="2"> <a href="#"><img class="t02" src="image.jpg"></a> </li>

提前致谢

【问题讨论】:

  • 使用@for 循环而不是@foreach
  • 你也可以使用计数器
  • 不,当 foreach 重复
  • slideIndex="0" 不改变我需要动态改变数字

标签: .net razor umbraco


【解决方案1】:

试试这个,它使用一个简单的计数器变量。

@int i = 0;
@foreach (var image in Umbraco.Field("Photo").ToString().Split(',').Select(x=>Umbraco.Media(int.Parse(x))))
{
    <li slideIndex="@i"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
    i++;
}

但是您也可以使用@for 循环来解决您的问题。这取决于你...

【讨论】:

  • 我觉得你打错了 @int i = 0; 应该是 @{int i = 0}
【解决方案2】:
@
{
   int  i = 0;

   foreach (var image in Umbraco.Field("Photo").ToString().Split(',').Select(x=>Umbraco.Media(int.Parse(x))))
  {
     <li slideIndex="@i"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
      i++;
  }
}

【讨论】:

  • 脚本计数器功能怎么样?
  • 我的意思是使用单独的 javascript,
  • 我不会为此使用 JavaScript,因为您需要遍历所有 html 元素并设置值。对于这样一个简单的任务来说,这太复杂了。内联 c# 非常适合您的目的。
【解决方案3】:

Enumerable.Select<TSource, TResult> Method (IEnumerable<TSource>, Func<TSource, Int32, TResult>) 的另一个变体

@foreach (var image in Umbraco.Field("Photo")
                              .ToString()
                              .Split(',')
                              .Select((x,index)=> new {
                                  index=index, 
                                  media=Umbraco.Media(int.Parse(x))
                              }))
{
    <li slideIndex="@image.index"> <a href="#"><img class="t02" src="image.jpg"></a> </li>
}

【讨论】:

    【解决方案4】:

    我找到了解决办法:

     @{
                var countNum = -1;
                }
                @foreach (var image in Umbraco.Field("Photo").ToString().Split(',').Select(x=>Umbraco.Media(int.Parse(x))))
                {
                    {
                    countNum += 1;
                    }
    
    
                        <li slideIndex="@countNum"> <a href="#">
                            <img class="t02" src="@image.Url"></a>
                        </li>                               
    
    
                }
    

    【讨论】:

    • 和@BendEg 的回答一样
    • 我的代码出现服务器错误!但感谢他
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签