0

这是我的代码:

var item = (ElementPricingItem)block.Content;
var priceBlock = item.PricingPrice.FirstOrDefault(p => ((ElementPriceSize)p.Content).TeamSize.Id == size.Id);
var price = (ElementPriceSize)priceBlock.Content;
if (item.PricingPrice != null && price.Price != null && price.TeamSize != null)
    {
        <div class="col-lg-3 col-md-6 col-12 mt-4 pt-2">
            <div class="card pricing-rates business-rate shadow @Html.If(item.BgCardColor == true, "bg-light") border-0 rounded">
                <div class="card-body js-rte-bullet-point">
                    <h2 class="title text-uppercase mb-4">@item.PricingType</h2>
                    <div class="d-flex mb-4">
                        <span class="price h1 mb-0">@price.Price</span>
                            <span class="h4 align-self-end">CHF</span>
                                <span class="h4 align-self-end">/year</span>
                    </div>
        <p>@Html.Raw(item.PricingBenefits)</p>
        @if (item.PricingCta != null)
        {
           <a href="@item.PricingCta.Url" class="btn btn-primary mt-4">@item.PricingCta.Name</a>
        }
        </div>
        </div>
        </div>
}

price.TeamSize在我获得 var priceBlock 中的 ID 之前,我需要检查是否存在。问题是我的可变价格正在使用 priceBlock。所以我无法在 priceBlock 之前检查 price.TeamSize。

有谁知道如何解决这个问题?

4

1 回答 1

0

有人回答了这个问题,但后来删除了他的答案,尽管它对我有用。

我不得不更改以下内容:

因为在我将 priceBlock 变量更改为此之前,我无法检查 price.TeamSize 是否为空:

From

var priceBlock = item.PricingPrice.FirstOrDefault(p => ((ElementPriceSize)p.Content).TeamSize.Id == size.Id);

to this: 

var priceBlock = item.PricingPrice.FirstOrDefault(p => ((ElementPriceSize)p.Content).TeamSize?.Id == size.Id);

这 ”?” 检查 TeamSize 是否为空。我还必须将 IF 更改为:

From:
var price = (ElementPriceSize)priceBlock.Content;
if (item.PricingPrice != null && price.Price != null && price.TeamSize != null)
{
//kjsdhf
}
to this: 
if (priceBlock != null)
{
  var price = (ElementPriceSize)priceBlock.Content;
}

谢谢谁回答,它对我有用,哈哈:)

于 2020-11-20T09:28:30.690 回答