在ViewBag没有显示泛型列表

问题描述 投票:0回答:2

我不能到一个通用的列表分配给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>
c# asp.net .net asp.net-mvc viewbag
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>

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();
© www.soinside.com 2019 - 2024. All rights reserved.