【发布时间】:2013-12-22 21:35:20
【问题描述】:
我正在开发一个ASP.NET MVC 4 应用程序。我首先使用 EF 5 和代码,并在我的一个实体中使用:
public string ImageName { get; set; }
public string ImageGUIDName { get; set; }
这两个属性是我实体的一部分。由于我可能没有上传图像,因此这些值可以为空,但是当我渲染通过模型的视图时,ImageName 和 ImageGUIDName 从数据库中以null 出现,我得到了这个:
Exception Details: System.ArgumentNullException: Value cannot be null.
基本思路是根据有无图片为用户提供不同的文字:
@if (Model.ImageName != null)
{
<label for="Image">Change picture</label>
}
else
{
<label for="Image">Add picture</label>
}
所以当上面的代码让我遇到错误时,我尝试使用string.IsNullOrEmpty(Model.ImageName) 和Model.ImageName.DefaultIfEmpty() != null,但我得到了完全相同的错误。看来我不能只将 y 实体属性设置为可为空:
public string? ImageName { get; set; } //Not working as it seems
那么我该如何处理呢?
【问题讨论】:
-
也许你的 Model 是 null 而不是 ImageName 属性
-
在这种情况下,我很确定。 @naspinski 的回答也很好。这只是你检查null的方式,在这种情况下你似乎不能如你所愿。
-
最佳实践是使用 String.IsNullOrWhiteSpace(Model.ImageName)
标签: c# entity-framework asp.net-mvc-4 razor