ASP.NETCoreMVC修改实体会导致NullReferenceException
创始人
2024-09-18 02:02:03
0

出现此问题的原因是在修改实体时,实体可能为空。为了避免此问题,需要在修改实体前进行空值检查。

以下示例代码演示了如何避免此问题:

public async Task Edit(int id, [Bind("Id,Name,Description")] Product product) { if (id != product.Id) { return NotFound(); }

if (ModelState.IsValid)
{
    try
    {
        var existingProduct = await _context.Products.FindAsync(id);

        if (existingProduct == null)
        {
            return NotFound();
        }

        existingProduct.Name = product.Name;
        existingProduct.Description = product.Description;

        _context.Update(existingProduct);
        await _context.SaveChangesAsync();
    }
    catch (DbUpdateConcurrencyException)
    {
        if (!ProductExists(product.Id))
        {
            return NotFound();
        }
        else
        {
            throw;
        }
    }
    return RedirectToAction(nameof(Index));
}
return View(product);

}

以上代码中,我们检查了从数据库中获取到的实体是否为空。如果为空,我们将返回“NotFound”错误。如果实体不为空,我们将继续更新实体的属性并保存更改。

通过这种方式,我们可以避免在修改实体时遇到空引用异常。

相关内容

热门资讯

透视玄学(wEpOke)透明挂... 透视玄学(wEpOke)透明挂辅助器(WePoKe外挂)固有真的是有挂(详细透视可靠技巧);WePo...
WePoKe外挂!德州aapo... WePoKe外挂!德州aapoker俱乐部,(aa扑克)从前真的有挂(详细辅助2025新版总结)关于...
透视真的(微扑克ai辅助工具)... 透视真的(微扑克ai辅助工具)pokerrrr2挂(详细辅助必胜教程)原生真的有挂1、不需要AI权限...
透视有挂(wEpoKe)透视辅... 透视有挂(wEpoKe)透视辅助挂(wepoke智能ai)本然是有挂(详细透视揭秘教程);原来确实真...
智星德州菠萝偷偷看牌功能!wp... 智星德州菠萝偷偷看牌功能!wpk微扑克辅助,(aapokER)总是有挂(详细辅助专业教程)1、不需要...
透视中牌率(wepokeai代... 透视中牌率(wepokeai代打的胜率)微扑克辅助测试(详细辅助黑科技教程)原本真的有挂,您好,we...
透视辅助(wePOKE)外挂透... 1、透视辅助(wePOKE)外挂透明挂辅助挂(wepoke有没有挂)原生有挂(详细透视必胜教程)2、...
德州之星外挂!约局吧是正规的吗... 德州之星外挂!约局吧是正规的吗,(德州机器人)原生是有挂(详细辅助AI教程)是一款可以让一直输的玩家...
透视最新(德州免费辅助神器ap... 1、透视最新(德州免费辅助神器app)wepokeai代打(详细辅助微扑克教程)竟然有挂;代表性(透...
透视模拟器(WepOke)外挂... 透视模拟器(WepOke)外挂透明挂辅助工具(wepok软件透明挂)都是有挂(详细透视专业教程);《...