试图在我的 Index HomeController 中传递一个方法 "GetYears" 以在我的视图中使用。然后遍历它以将每个月放在一个文本框中

Trying to pass a method "GetYears" in my Index HomeController to used in my view. Then iterate through it to place each month in a textbox

Trying to send GetYears() to my Index view to loop through it and place the years into each checkbox. I can't seem to be able to loop through the list in my html page.

    public ActionResult Index()
    {

       var tenYears = ViewBag.GetYears(10);

        return View(tenYears);
    }



private List<int> GetYears(int yearRange)
    {
        return Enumerable.Range(DateTime.Now.AddYears(-yearRange).Year, 
        yearRange).ToList();
    }

@foreach (int year in tenYears )
            {
                
            }

            <div id="checkboxes" class="grid-container2">
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.yearRange[0]</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years1</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years2</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years3</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years4</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years5</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years6</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years7</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years8</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years9</label>
                <label><input id="chkBoxYear" type="checkbox" name="Year" value=""> @ViewBag.years10</label>
            </div>
            <button id="selection" class="select-all-years">Select All Years</button>
            
        </div>

这应该是正确的做法。

public ActionResult Index()
{
    ViewBag.TenYears = GetYears(10);
    return View();
}

然后是内景。

<div id="checkboxes" class="grid-container2">
@foreach (var year in ViewBag.TenYears){
    <label><input type="checkbox" id="@year"> @year</label>
}
</div>
<button id="selection" class="select-all-years">Select All Years</button>

关于 viewbag 要永远记住的要点:

  • ViewBag 将数据从控制器传输到视图,理想情况下 未包含在模型中的临时数据。您可以分配任何 ViewBag 的属性和值的数量 仅 ViewBag 的生命 在当前 http 请求期间持续。如果 重定向发生。 ViewBag 实际上是 ViewData 的包装器。