我想在asp.net mvc中为学生创建一个模型,我想知道如何在模式中包含图像。
除了使用图像DataURI还有其他方法吗?
我的目标是我想提供安全性,以便其他人无法看到图像。 我正在使用MongoDB在ASP.Net MVC上做一个项目
答案 0 :(得分:0)
我不确定你要求的是什么。目前还不清楚图像应该由谁和哪里提供。但我会尝试给出一些提示。这不会是复制/“可管理的”,需要进行调整以匹配您的数据/模型。
我会将图像与mongo中的模型分开。即“学生模型”应该为其图像保存一个Id,该图像存储在学生图像集合中。
在您的网页中,通过像这样的控制器操作获取图像。如果您想为除学生本身之外的所有其他用户隐藏它,那么您需要在用户符合特定条件时显示它。我假设您正在谈论您已登录(身份)并且正在运行的安全性。
@if (User.Identity.Name == @studentModel.UniqueName)
{
<img src="@Url.Action("GetStudentImage", "StudentController", new {id = studentModel.ImageId})"
}
在您的控制器中,您从mongo数据库中获取图像。 (这只是我的头脑,与你的模型不匹配,所以你必须调整)
public Task<ActionResult> GetStudentImage(string id)
{
var image = mongo.GetCollection<Image>("Image").AsQueryable().First(x => x.Id == id);
return File(image.ImageBytes.ToArray(), "image/png"); // the image in bytes
}