这是提交使用ajax提取数据的视图。
我正在尝试从MongoDb GridFS存储桶中检索图像。下载操作有效。但是问题是,我使用的视图模型具有:
public User User { get; set; }
public List<IFormFile> ImageUpload { get; set; }
我从db上下文中获取用户,并使用它来识别存储桶中的图像,并希望将其从控制器返回到视图中。
以下是我的控制器代码:
public IActionResult AddEditUser(int id = 0)
{
if (id == 0)
{
return View(new UserImgBinder());
}
else
{
var userImageId = _context.User.Where(x => x.UserId.Equals(id)).Select(y => y.AvatarImg).ToString();
var stream = ContextNew.ImagesBucket.OpenDownloadStream(new ObjectId(userImageId.ToBson()));
var contentType = stream.FileInfo.Metadata["ContentType"].AsString;
//File(stream, contentType);
IFormFile file = new FormFile(stream, 0, stream.Length,"","");
var UserImgBinder = new UserImgBinder
{
User = _context.User.Where(x => x.UserId.Equals(id)).FirstOrDefault(),
ImageUpload = file
};
return View(UserImgBinder);
}
}
由于ImageUpload的类型为List,而我要提供的内容不是列表,因此出现错误。
我应该写些什么来解决这个问题?这种方法不好吗? 请帮忙。 谢谢。
答案 0 :(得分:0)
尝试如下代码:
var UserImgBinder = new UserImgBinder
{
User = _context.User.Where(x => x.UserId.Equals(id)).FirstOrDefault(),
ImageUpload = new List<IFormFile> {
file
}
};