我有一点问题。我在 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
在第一次if
和false
第二次更改,我只会true
在值到达视图时得到。
任何想法都会受到欢迎。