ViewBag中记录数为1时如何重复for循环?

How to repeat for loop when the record count is one in ViewBag?

我有 ViewBag 可以数一到二。如果计数为一,那么我希望某些 Html 重复,如果计数为二,则我希望循环正常执行。

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 中的项目继续渲染。

这可能就是您想要的:

@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" />
        }
}

你能不能只移动这条语句:

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

for 循环内部是这样的?

for(int i=1;i==1; i=ViewBag.Address.Count == 1 ? 0: 1)   

以防万一你关心计数-

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" />
     }