0

我有一点问题。我在 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;

当值到达视图时,它们都变为false. 我不知道为什么,但是它通过对 first 的评估来设置所有值if。如果我true在第一次iffalse第二次更改,我只会true在值到达视图时得到。

任何想法都会受到欢迎。

4

0 回答 0