Asp.net mvc 当目标是在视图中显示此图像时,我应该在模型中使用哪种图像?

Asp.net mvc 当目标是在视图中显示此图像时,我应该在模型中使用哪种图像?,asp.net-mvc,entity-framework,razor,Asp.net Mvc,Entity Framework,Razor,我的情况是,我将图像存储为SQL数据库中的字节数组。我使用的是EF,因此在我的模型中有一个字节数组自动属性,然后通过代码首先提交给数据库 我想在模型中放入一个只读属性,它是一个映像,并在调用get访问器时将字节数组转换为映像。两个问题: 我应该使用什么样的图像?它应该是System.Drawing图像还是较新的位图图像 这会导致代码优先和EF方面的任何问题吗 如果你愿意,我可以发布代码,但我认为没有必要,如果有人想看我的代码,请留下评论 1) 我应该使用什么样的图像?它应该是一个系统吗 图像,还

我的情况是,我将图像存储为SQL数据库中的字节数组。我使用的是EF,因此在我的模型中有一个字节数组自动属性,然后通过代码首先提交给数据库

我想在模型中放入一个只读属性,它是一个映像,并在调用get访问器时将字节数组转换为映像。两个问题:

  • 我应该使用什么样的图像?它应该是System.Drawing图像还是较新的位图图像
  • 这会导致代码优先和EF方面的任何问题吗
  • 如果你愿意,我可以发布代码,但我认为没有必要,如果有人想看我的代码,请留下评论

    1) 我应该使用什么样的图像?它应该是一个系统吗 图像,还是更新的位图图像

    没有。您应该使用字节数组(
    byte[]

    2) 这会导致代码优先和EF方面的任何问题吗

    我不这么认为。我不是EF方面的专家,但我认为应该可以将
    byte[]
    属性映射到数据库中相应的
    varbinary(max)

    现在回到最初的问题,关于显示图像和在视图模型上具有属性。即使这样做,也无法在视图中将此字节数组属性显示为图像,除非使用并非所有浏览器都广泛支持的。如果你决定走这条路,情况可能是这样的:

    @model MyViewModel
    ...
    <img src="data:image/png;base64,@Html.Raw(Convert.ToBase64String(Model.Image))" alt="some image">
    
    然后在主视图中简单地指向一个
    
    
    转换字节数组后,是否要对图像进行任何处理?或者唯一的目的是用
    显示您的视图?因为你不需要任何转换就可以做到。。。通过引入
    ImageController
    Show
    方法,该方法可直接为从数据库到视图的图像提供服务,而无需任何conversion@nemesv谢谢,最后我找到了这个类并使用了它,它在一个构造函数中使用了一个字节数组,Razor似乎很喜欢它,再次感谢!非常感谢,在你回答这个问题之前,我一直在努力学习WebImage课程,我现在就走这条路。
    public ActionResult Image(int id)
    {
        byte[] imageData = ... go query your database to retrieve the corresponding
                               image record using the id
        return File(imageData, "image/png");
    }
    
    @model MyViewModel
    ...
    <img src="@Url.Action("Image", "SomeController", new { id = Model.Id })">