我使用的是实体框架核心。一切都很好,除了在视图中显示项目外,我可以在数据库中创建、更新和删除记录。
我在视图中进行了验证检查,所以没有任何记录具有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参数(
问题:此错误的根本原因是什么?
是因为我检查null的方式错误吗?
是连接字符串吗?但我可以创建、更新和删除数据库中的项目。因此它应该是好的。。。
什么是";"力";用数据库数据填充"模型"?
请帮忙!
这是因为您的模型为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();
}