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 に答える