如果在ViewBag中记录计数为1,如何重复循环?

时间:2015-06-24 04:21:57

标签: c# asp.net-mvc-4 ternary-operator

我有ViewBag,可以有一两个。如果计数是1,那么我想要一些Html重复,如果计数是2,那么我希望循环正常执行。

for(int i = 0; i < ViewBag.Address; i++)
{
    if(i== 0) {
         <b>Current Address</b>
    }
    else{
         <b>Permanent Address</b>
    }

    <input type="text" value="@ViewBag.Address[i].Addreess1" />
    <input type="text" value="@ViewBag.Address[i].Addreess1" />

    //I tried doing something like
    i =  ViewBag.Address.Count == 1 ? 0: 1;     
}

但是这里循环不断重复,无论如何都要检查计数是否为1然后再次重复循环,否则继续按ViewBag中的项目进行渲染。

3 个答案:

答案 0 :(得分:1)

你不能只是移动这句话:

MUTABLE_REFERENCE
像这样在循环里面?

i =  ViewBag.Address.Count == 1 ? 0: 1;   

答案 1 :(得分:0)

这可能就是你想要的:

@switch (ViewBag.address.Count)
{
    case 1:   // some set of Html to repeat
        @for (int i = 0; i < length; i++)
        {
            <span> some Html item</span>
        }
        break;
    default:  // loop executes normally
        foreach (var item in ViewBag.Address)
        {
            <b>@item.SomeProperty</b>
            <input type="text" value="@item.Addrees" />
        }
}

答案 2 :(得分:0)

以防万一你关心伯爵 -

var count = @Enumerable.Count(ViewBag.Address)

,然后 -

@if(count==2)

@if(count==1)

纠正代码 -

   @{
     var count = Enumerable.Count(ViewBag.Address);
    }

 @foreach (var item in ViewBag.Address)
    {
       if (count == 2)
        {
          <b>Current Address</b>
        }
       else
        {
          <b>Permanent Address</b>
        }

       <input type="text" value="@item.Addreess1" />
       <input type="text" value="@item.Addreess1" />
     }