【发布时间】:2023-01-13 04:43:54
【问题描述】:
我有一个正在处理的 ASP.Net Core 项目。所以我有一个 Linq 调用,它从数据库中获取信息并将其发送回控制器,没问题。当我将此数据发送到视图时出现错误
传入 ViewDataDictionary 的模型项的类型为“System.Collections.Generic.List`1[PhotoUploader.Models.UnitPictures]”,但此 ViewDataDictionary 实例需要类型为“PhotoUploader.Models.FileViewModel”的模型项。
现在我知道这是为什么了,因为模型类型从控制器到视图不匹配。我的问题是,如何将 UnitPictures 分配给我在其中创建的 FileViewModel 列表。
模型
public class UnitPictures
{
public long ImageId { get; set; }
public string FileName { get; set; }
public string FileLocation { get; set; }
public int SortOrder { get; set; }
}
查看模型
public FileViewModel()
{
UnitPicturesList = new List<UnitPictures>();
}
//Other Fields here
public List<UnitPictures> UnitPicturesList { get; set; }
}
UnitPictures 类型的方法调用返回数据
private List<UnitPictures> GetImages(long Id)
{
var images = (from a in _db.Images
join b in _db.AutoImage
on a.ImageId equals b.ImageId
where b.Id == Id
select new UnitPictures
{
FileLocation = "",
FileName = a.FileName,
SortOrder = 0,
ImageId = a.ImageId
}).ToList();
return images;
}
控制器
public IActionResult UnitImages(long Id, long unitId)
{
var images = GetImages(Id);
return View(images);
}
看法
@model FileViewModel
<div class="row">
<div class="col-lg-4 col-md-12 mb-4 mb-lg-0">
@for (var i = 0; i < Model.UnitPicturesList.Count; i++)
{
<img
src="https://mdbcdn.b-cdn.net/img/Photos/Horizontal/Nature/4-col/img%20(73).webp"
class="w-100 shadow-1-strong rounded mb-4"
alt="Boat on Calm Water"
/>
}
</div>
【问题讨论】:
标签: c# asp.net-mvc asp.net-core