[英]How to check model string property for null in a razor view
我正在研究ASP.NET MVC 4
应用程序。 我首先使用EF 5
代码,然后在我的一个实体中使用:
public string ImageName { get; set; }
public string ImageGUIDName { get; set; }
那两个属性是我实体的一部分。 由于我可能没有上传图像,因此这些值可以为null但是当我渲染视图时, 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
那我怎么处理这个呢?
首先尝试这个,你可能会传递一个Null模型:
@if (Model != null && !String.IsNullOrEmpty(Model.ImageName))
{
<label for="Image">Change picture</label>
}
else
{
<label for="Image">Add picture</label>
}
另外,你可以用一些三元的乐趣使它更整洁! - 但如果您的模型为空,那仍然会出错。
<label for="Image">@(String.IsNullOrEmpty(Model.ImageName) ? "Add" : "Change") picture</label>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.