C# 显示基于 ViewModel 控制器的 ViewBag

C# Displaying a ViewBag based on ViewModel controller

我有一个显示购物车 CartItems 中的项目的 ViewModel 和一个显示总成本的视图模型。我目前拥有的 if 语句不起作用,这是为什么,我该如何解决? CartItems 是一个列表。我试图做到这一点,如果购物车中没有商品,则会显示消息购物车空

    ShoppingCartViewModel viewModel = new ShoppingCartViewModel
    {
        CartItems = cart.GetCartItems(),
        CartTotal = cart.GetTotal()
    };


if (viewModel.CartItems == null)
{
    ViewBag.CartStatus = "CART EMPTY";
}
else
{
    ViewBag.CartStatus = "Cart Has item, proceed";
}

如果您的方法总是 returns 一个空集合,您可能想要检查它而不是 null:

if (viewModel.CartItems.Any())
{
    ViewBag.CartStatus = "CART EMPTY";
}
else
{
    ViewBag.CartStatus = "Cart Has item, proceed";
}

此外,这个 ViewBag 太可怕了。每次看到它我的眼睛都在流血。你有一个视图模型,为什么不在上面添加一个 CartStatus tring 属性 并相应地更新它呢?