从控制器传递到视图时值会更改

时间:2013-04-01 08:23:47

标签: c# asp.net-mvc-4

我对某件事情有点不对劲。我在ViewBag中添加了一些bool值,但当它们到达View时,它们会更改它们的值。我在控制器操作中有这个

        var buckets = db.Buckets.ToList();
        int i=0;
        ViewBag.CV = new bool[buckets.Count];

        foreach (Bucket b in buckets)
        {
            var payByInvoice = db.PaymentOptions.Where(p => p.BucketId == b.Id).Select(p => p.CanPayByInvoice).SingleOrDefault();
            if (payByInvoice != (int)PayByInvoiceState.Accepted)
            {
                ViewBag.CV[i] = false;
            }
            if (payByInvoice == (int)PayByInvoiceState.Accepted)
            { 
                ViewBag.CV[i] = true;
            }
                i++;
        }

foreach完成作业时,ViewBag.CV中保留的值如下:

ViewBag.CV[0] = true; ViewBag.CV[1] = false; ViewBag.CV[2] = false;

当值达到View时,它们全部变为false。我不知道为什么,但它通过评估第一个if来设置所有值。如果我更改了第一个true上的if和第二个false,那么当值到达视图时,我只会true

任何想法都会受到欢迎。

0 个答案:

没有答案