【发布时间】:2017-02-11 11:14:37
【问题描述】:
我的模型中有一个图像属性,该属性有时可能为空。问题是当数据库中没有图像时,我得到一个argumentNull exception。如果记录中没有图像,我想要实现的仍然是显示其余属性。
为此,我尝试在我看来做这样的事情,但没有奏效:
<div>
<h4>Company</h4>
<hr />
<dl class="dl-horizontal">
<dt>
@Html.DisplayNameFor(model => model.ImageData)
</dt>
@if (Model.ImageBase64 != null || Model.ImageData!= null )
{
<dd>
<img src="data:image/png;base64,@Model.ImageBase64" />
</dd>
}
<dt>
@Html.DisplayNameFor(model => model.CompanyName)
</dt>
<dd>
@Html.DisplayFor(model => model.CompanyName)
</dd>
我的模型是这样的:
public class Company
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int CompanyId { get; set; }
public byte[] ImageData { get; set; }
[NotMapped]
public HttpPostedFileBase UploadImage { get; set; }
[NotMapped]
public string ImageBase64 => System.Convert.ToBase64String(ImageData);
public string CompanyName { get; set; }
public string CompanyAddress { get; set; }
public string CompanyCountry { get; set; }
public string CompanyCity { get; set; }
public string CompanyPostalCode { get; set; }
public string CompanyPhoneNumber { get; set; }
public string CAId { get; set; }
public virtual ICollection<WorkRole> WorkRoles { get; set; }
public virtual ICollection<UserDetails> UserDetails { get; set; }
}
这就是我从控制器传递给视图的内容:
Company company = db.Companies.Where(c => c.CAId == currentUserId)
.FirstOrDefault();
db.Users.FirstOrDefault(x => x.Id == currentUserId);
关于如何实现我想要的任何提示?
【问题讨论】:
-
您是否将模型返回到视图 - 您显示的代码可能引发异常的唯一方法是
Model是null -
是的,我要退货。
-
那么您还没有向我们展示真正引发异常的代码。
@if (Model.ImageBase64 != null || Model.ImageData!= null )甚至不需要 -
虽然我向您展示了抛出它的代码..如果不是视图或控制器,它可能是什么?抛出异常,因为字符串 ImageBase64 不可为空,我想绕过它。原谅我的菜鸟。
-
问题不在于视图 - 它的
public string ImageBase64 => System.Convert.ToBase64String(ImageData);-ToBase64String(null)抛出异常
标签: c# html .net asp.net-mvc entity-framework