Asp.net mvc ASP.NET MVC(对象引用未设置为对象的实例)
我在显示个人文件列表时遇到以下问题, 但是我在查询中使用了(使用System.Data.Entity)和(Include),它不起作用 类模型Asp.net mvc ASP.NET MVC(对象引用未设置为对象的实例),asp.net-mvc,join,include,Asp.net Mvc,Join,Include,我在显示个人文件列表时遇到以下问题, 但是我在查询中使用了(使用System.Data.Entity)和(Include),它不起作用 类模型 public class PersonalFile { public int Id { get; set; } [StringLength(50)] public string FileName { get; set; } [StringLength(500)] public string FilePath {
public class PersonalFile
{
public int Id { get; set; }
[StringLength(50)]
public string FileName { get; set; }
[StringLength(500)]
public string FilePath { get; set; }
public DateTime UploadDateTime { get; set; }
public int EmployeeId { get; set; }
[ForeignKey("EmployeeId")]
public Employee Employee { get; set; }
public int? FileCategoryId { get; set; }
[ForeignKey("FileCategoryId")]
public virtual FileCategory FileCategory { get; set; }
}
类视图模型
public class PersonalFileViewModel
{
public int Id { get; set; }
[StringLength(50)]
public string FileName { get; set; }
[StringLength(500)]
public string FilePath { get; set; }
public int EmployeeId { get; set; }
[Required]
public int FileCategoryId { get; set; }
public IEnumerable<PersonalFile> PersonalFiles { get; set; }
}
看法
foreach(Model.PersonalFiles中的var j)
{
@j、 文件名
@j、 FileCategory.categoryName
@j、 上载日期时间
@ActionLink(“Delete”,“Delete”,new{j.Id},new{@class=“btn-btn-danger-btn-sm”,onclick=“return-confirm('你真的想删除这个文件吗?');”)
}
首先,确保每个
个人文件
都属于相应的文件类别
其次,您应该.ToList()
强制我们的查询改为
首先,确保每个
个人文件
都属于相应的文件类别
其次,您应该.ToList()
强制我们的查询改为
我把这行代码放在视图上解决了这个问题
@(j.FileCategory == null ? "" : j.FileCategory.categoryName)
我把这行代码放在视图上解决了这个问题
@(j.FileCategory == null ? "" : j.FileCategory.categoryName)
检查@j.FileCategory是否为空?也许这就是为什么它没有检索CategoryName的值在控制器中添加一个临时行:
\u dbContext.PersonalFiles.Include(p=>p.Employee).Include(p=>p.FileCategory).Where(x=>x.EmployeeId==id).ToList()代码>-此处是否包含预期数据?是否在数据库中?检查@j.FileCategory是否为空?也许这就是为什么它没有检索CategoryName的值在控制器中添加一个临时行:\u dbContext.PersonalFiles.Include(p=>p.Employee).Include(p=>p.FileCategory).Where(x=>x.EmployeeId==id).ToList()代码>-此处是否包含预期数据?它在数据库里吗?
foreach (var j in Model.PersonalFiles)
{
<tr style="border-top: 1px solid black;">
<td style="vertical-align: middle;">@j.FileName</td>
<td style="vertical-align: middle;"> @j.FileCategory.categoryName </td>
<td style="vertical-align: middle;">@j.UploadDateTime</td>
<td>
<a href=@Url.Content("~/Content/Images/PersonalFiles/"+j.FilePath) class="btn btn-success btn-sm">Download</a>
@Html.ActionLink("Delete", "Delete", new { j.Id }, new { @class = "btn btn-danger btn-sm", onclick = "return confirm('Do you really want to delete this file?');" })
</td>
</tr>
}
PersonalFiles = _dbContext.PersonalFiles.Include(p => p.Employee).Include(p => p.FileCategory).Where(x => x.EmployeeId == id).ToList()
@(j.FileCategory == null ? "" : j.FileCategory.categoryName)