控制器返回图像以便在浏览器中使用

Tre*_*iel 2 c# asp.net-mvc

我试图将现有的WinForms应用程序转换为MVC Web应用程序.

我试图从控制器显示图像.

目前我从一个函数返回System.Drawing.Image,我正在尝试解决如何将其提供给View.

这是我的控制器:

public System.Drawing.Image getStudentImage(string PersonID)
{
        System.Drawing.Image studentImage = ClientFunctions.GetStudentImage(GlobalVariables.networkstuff, GlobalVariables.testAuth, PersonID);
        return studentImage;
}
Run Code Online (Sandbox Code Playgroud)

然后,在我的视图中,我想显示此图像...

希望,像这样:

<img id="@pupil.PupilInfo.PersonID" src="~/TakeRegister/getStudentImage/@pupil.PupilInfo.PersonID" alt="" />
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,我在浏览器中看到了破碎的图像,当我查看图像的"src"时,它看起来像这样:

http://localhost:19340/TakeRegister/getStudentImage/3058
Run Code Online (Sandbox Code Playgroud)

我觉得我在这里做的不仅仅是一件事......(?)

有人可以给我任何指示吗?

Vse*_*nin 6

您可以return File()在行动中使用.

public ActionResult Image(int PersonID)
        {
            System.Drawing.Image image = ClientFunctions.GetStudentImage(GlobalVariables.networkstuff, GlobalVariables.testAuth, PersonID);

            using (var ms = new MemoryStream())
            {
                image.Save(ms, ImageFormat.Jpeg);

                return File(ms.ToArray(), "image/jpeg");
            }
        }
Run Code Online (Sandbox Code Playgroud)