如何在C#模型中包含图像并在MongoDB

时间:2017-03-18 09:30:46

标签: c# mongodb image models

我想在asp.net mvc中为学生创建一个模型,我想知道如何在模式中包含图像。

除了使用图像DataURI还有其他方法吗?

我的目标是我想提供安全性,以便其他人无法看到图像。 我正在使用MongoDB在ASP.Net MVC上做一个项目

1 个答案:

答案 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
}