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

如何解决删除无图片员工记录时的System.ArgumentNullException错误?

解决删除无图片记录时的ArgumentNullException错误

问题场景:数据网格支持不上传图片就保存数据,此时数据库ImageName(对应代码里的Passport字段)为空。删除这类无图片的记录时,抛出错误:

System.ArgumentNullException: 'Value cannot be null. (Parameter 'path3')'

错误根源:代码中直接用order.Passport!强制非空,当Passport为空时,Path.Combine因传入null参数触发异常。

修改后的Delete方法代码:

public IActionResult Delete([FromBody] ICRUDModel<Employee> value)
{
    Employee employee = _context.Employee.Where(c => c.EmployeeId == (int)value.key).FirstOrDefault();
    
    // 仅当Passport不为空时,才处理文件删除逻辑
    if (!string.IsNullOrEmpty(employee.Passport))
    {
        var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/Photos", employee.Passport);
        if (System.IO.File.Exists(filePath))
        {
            System.IO.File.Delete(filePath);
        }
    }
                   
    _context.Employee.Remove(employee);
    _context.SaveChanges();
    return Json(employee);
}    

修改说明:

  • 新增!string.IsNullOrEmpty(employee.Passport)判断,确保只有当图片文件名存在时,才执行路径拼接和文件删除操作
  • 变量名order改为employee,更贴合业务语义(原代码操作的是Employee实体,变量名更准确)

修改后效果:删除ImageName为空的记录(如Id=2的Maria)时,会跳过文件处理逻辑,直接删除数据库记录,最终数据表格变为:

IdEmployeeNamePositionImageName
1AnnahAdmin Assistantannah.png

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:12:11