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

System.NullReferenceException异常:Model.ShowallCustomer返回null问题求助

空引用异常(NullReferenceException)排查与解决

异常原因

你遇到的System.NullReferenceException是因为Model.ShowallCustomer属性返回了null,foreach循环无法遍历null对象。常见触发场景有两种:

  • 控制器在返回视图时,没有给ShowallCustomer属性赋值,或者数据查询逻辑出错导致返回null
  • Customer模型类中ShowallCustomer属性未初始化,默认值为null

解决方法

1. 检查控制器数据赋值逻辑

打开对应的控制器代码,确保在返回视图前正确填充ShowallCustomer数据。示例代码如下:

public ActionResult YourViewName()
{
    var customerModel = new E_Shopping_System.Models.Customer();
    // 从数据源(如数据库)获取客户列表,确保返回空集合而非null
    customerModel.ShowallCustomer = yourDbContext.Customers?.ToList() ?? new List<E_Shopping_System.Models.Customer>();
    return View(customerModel);
}

重点:即使没有客户数据,也要返回空集合(new List<Customer>()),而不是null。

2. 初始化模型类的属性

在Customer模型类中,直接将ShowallCustomer属性初始化为空集合,从根源避免null:

namespace E_Shopping_System.Models
{
    public class Customer
    {
        // 其他属性(Name、Address等)...
        public List<Customer> ShowallCustomer { get; set; } = new List<Customer>();
    }
}

3. 视图中添加防御性检查

在视图代码中增加null判断,即使属性为null也能友好处理,避免异常:

@if (Model?.ShowallCustomer != null)
{
    @foreach (var item in Model.ShowallCustomer)
    {
        <tr>
            <td>@Html.DisplayFor(modelItem => item.Name)</td>
            <td>@Html.DisplayFor(modelItem => item.Address)</td>
            <td>@Html.DisplayFor(modelItem => item.Mobileno)</td>
            <td>@Html.DisplayFor(modelItem => item.Birthdate)</td>
            <td>@Html.DisplayFor(modelItem => item.EmailID)</td>
            <td>
                @Html.ActionLink("Modify", "Edit", new { id = item.CustomerID }) |
                @Html.ActionLink("Detail", "Details", new { id = item.CustomerID }) |
                @Html.ActionLink("Remove", "Delete", new { id = item.CustomerID },
                new { onclick = "return confirm('Are sure wants to delete?');" })
            </td>
        </tr>
    }
}
else
{
    <tr><td colspan="6">暂无客户数据</td></tr>
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:25:20