You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC视图中Orders属性显示NULL问题求助

问题原因及解决方法

原Orders方法的核心问题

你创建了orders列表并添加了3条订单数据,但根本没把这个列表赋值给customer.Orders,而且循环里反复设置customer的基本信息(CustomerNumber、FirstName这些)属于冗余操作,完全可以放到循环外面。

重写的Orders1方法的问题

循环里每次都新建CustomerViewModel对象,最后既没把构造好的customer传给View,也没往Orders里添加任何订单数据,自然看不到订单内容。

正确的实现代码

public IActionResult Orders()
{
    decimal iTotal = 55.23M;
    // 初始化CustomerViewModel时同时实例化Orders列表,避免null
    CustomerViewModel customer = new CustomerViewModel
    {
        CustomerNumber = 111111,
        FirstName = "John",
        LastName = "Smith",
        Orders = new List<CustomerOrderModel>()
    };

    try
    {
        for (int i = 1; i < 4; i++)
        {
            var order = new CustomerOrderModel
            {
                OrderId = i,
                OrderDate = DateTime.Now,
                Description = "Part " + i,
                Total = iTotal
            };
            iTotal += order.Total;
            // 将生成的订单直接添加到customer的Orders列表中
            customer.Orders.Add(order);
        }
        
        return View(customer);
    }
    catch (Exception)
    {
        return View("Error");
    }
}

关键修复点

  • 初始化CustomerViewModel时直接实例化Orders列表,从根源避免属性为null。
  • 将customer的基本信息设置移到循环外,消除冗余赋值。
  • 生成订单后直接添加到customer.Orders中(也可以先把订单存到单独列表,最后一次性赋值给customer.Orders,两种方式都有效)。

内容的提问来源于stack exchange,提问作者ANSKY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:00:45