关于ASP.NET Core MVC Null异常错误处理



我使用的是实体框架核心。一切都很好,除了在视图中显示项目外,我可以在数据库中创建、更新和删除记录。

我在视图中进行了验证检查,所以没有任何记录具有NULL值。

display.cshtml:

@model IEnumerable<WebAppReview.Models.ItemReview>
@if (Model.Count() > 0)
... some code ...
@if (Model != null)
... some code ...

条件不断抛出这个错误:

ArgumentNullException:值不能为null。(参数"source"(系统林克。ThrowHelper。ThrowArgumentNullException(ExceptionArgument参数(

问题:此错误的根本原因是什么?

  1. 是因为我检查null的方式错误吗?

  2. 是连接字符串吗?但我可以创建、更新和删除数据库中的项目。因此它应该是好的。。。

  3. 什么是";"力";用数据库数据填充"模型"?

请帮忙!

这是因为您的模型为null,所以Model.Count() > 0语句总是会抛出这样的异常。因此,您需要首先判断模型是否为空。

更改如下:

@if (Model!=null && Model.Count() > 0)
{
//do your stuff...
}
@if (Model != null)
{    
//do your stuff...      
}

不确定你的真实场景是什么,但这两种说法是相似的,区别似乎是count是否等于0。上面的语句将显示两个代码示例ifModel.Count==0。如果你想区分这两种说法,我认为你需要改变如下:

@if (Model!=null && Model.Count() > 0)
{
//do your stuff...
}
@if (Model != null && Model.Count()== 0)
{    
//do your stuff...      
}
@if ( Model != null && Model.Count() > 0 ){
//do your stuff...
}
else{
//do your stuff...
}

这种安排对我有效。

开始时进行Null检查。

但在这种情况下,可能您没有调用控制器中的模型

看看这个例子,这是正确的方法:-

public IActionResult Index()
{
IEnumerable<YourModel> objList = _db.yourModel;
return View(objList);
//   return View();
}

相关内容

  • 没有找到相关文章

最新更新