0

我无法将通用列表分配给 ViewBag。这是我的代码:

var m = from i in Enumerable.Range(0, 12)
        let now = DateTime.Now.AddMonths(i)
        select now.ToString("MMMM") + " " + now.Year.ToString();

ViewBag.b = m;

当我输出 ViewBag 值时,我得到了这个:

System.Linq.Enumerable.WhereSelectEnumerableIterator<int,string>
4

2 回答 2

4

您可以将其转换为如下列表:

var m = (from i in Enumerable.Range(0, 12)
         let now = DateTime.Now.AddMonths(i)
         select now.ToString("MMMM") + " " + now.Year.ToString()).ToList();
ViewBag.b = m;

然后在你看来:

@{
    var myList = ViewBag.b as List<string>;
}

<ul>
    @foreach (var item in myList)
    {
        <li>@item</li>
    }
</ul>
于 2011-12-19T13:23:38.597 回答
3

当您对该值执行 foreach 时,将动态计算列表中的项目。如果它让你感觉更好,你可以在里面放一个 .ToList

var m = (from i in Enumerable.Range(0, 12)
                    let now = DateTime.Now.AddMonths(i)
                    select now.ToString("MMMM") + " " + now.Year.ToString()).ToList();
于 2011-12-19T13:22:36.220 回答