inside for循环使用for循环中声明的变量i的值?

时间:2016-11-11 06:20:29

标签: c# razor

我有一个for循环重复一个表头,每个都有一个下拉列表。下拉有href,我需要传递href,这将发送数据,如visit1 = item,visit2 = item

我不想硬访问visit1,visit2,.. iec,它应该与for循环相关

        @for (var i = 1; i < ViewBag.NoOfVisits + 1; i++)
                {
                    <th>
                        <p>Visit @i</p>
                        <div class="dropdown pull-right">
                            <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">

                                <span class="caret"></span>
                            </button>
                            <ul class="dropdown-menu" role="menu">

                                @foreach (var item in ViewBag.visit)
                                {
                                    <li role="presentation"><a role="menuitem" tabindex="-1" href="@Url.Action("Index", "ClinicalRegistryManager", new {siteId =@ViewBag.siteId, visit+@i = item})">@item</a></li>
                                }


                            </ul>
                        </div>
                    </th>
                }

看到里面的下拉列表,里面的下拉列表中我有另一个foreach,里面你可以看到一个带有href的li,它将尝试发送访问+ @ i = item,它不起作用,

  new {siteId =@ViewBag.siteId, visit+@i = item})

所以我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

我确实喜欢这个......有人只是检查一下,然后改进?

                @for (var i = 1; i < ViewBag.NoOfVisits + 1; i++)
                {
                    <th>
                        <p>Visit @i</p>
                        <div class="dropdown pull-right">
                            <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown">

                                <span class="caret"></span>
                            </button>
                            <ul class="dropdown-menu" role="menu">
                                <li role="presentation"><a role="menuitem" tabindex="-1" href="@Url.Action("Index", "ClinicalRegistryManager", new { siteId = @ViewBag.siteId })">Show all</a></li>

                                @{
                                    var array = ViewBag.visit1;
                                    switch (i)
                                    {
                                        case 1:
                                            {
                                                array = ViewBag.visit1;
                                                break;
                                            }
                                        case 2:
                                            {
                                                array = ViewBag.visit2;
                                                break;
                                            }
                                        case 3:
                                            {
                                                array = ViewBag.visit3;
                                                break;
                                            }
                                        case 4:
                                            {
                                                array = ViewBag.visit4;
                                                break;
                                            }
                                        case 5:
                                            {
                                                array = ViewBag.visit5;
                                                break;
                                            }

                                    }
                                }

                                @foreach (var item in array)
                                {
                                    var visit = "visit" + @i;
                                    <li role="presentation"><a role="menuitem" tabindex="-1" href="~/ClinicalRegistryManager/Index?SiteId=@ViewBag.siteId&@visit=@item">@item</a></li>
                                }


                            </ul>
                        </div>
                    </th>
                                    }