我对某件事情有点不对劲。我在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
。
任何想法都会受到欢迎。