ASP.NET 오인 자제 강좌: MVC에서 어떻게 그림을 되돌려줍니까

요 며칠 사소한 일들로 바빠서 아무것도 쓰지 못했어. 오늘 우리 비교적 간단한 놀이를 하자.바로 MVC에서 어떻게 그림을 되돌려주는지 전통적인 웹포롬에서 모두가 어떻게 하는지 알고 한 가지에 국한되지 않는다고 믿는다. 그러나 구조가 비교적 엄격한 MVC에서 처음 접촉한 친구는 어떻게 실현하는지 잘 모를 것이다.
 
우선, 우리는 컨트롤러부터 시작해야 한다. 어제 어떤 친구가 나에게 컨트롤러는 보통returnView가 아니냐고 물었다.그럼 그림을 어떻게 되돌려줍니까?물론 Controller 클래스에도 Return Image가 없습니다. 지난번에 우리의 예는 JSON으로 돌아가는 것입니다. 사실 우리는 파일 흐름을 되돌릴 수 있습니다. 처음에 저도 ViewData를 사용하려고 했지만 이것은 보기 페이지에서 서버 코드로만 조작할 수 있습니다. 만약에 JS를 사용하기를 원한다면 쉽지 않습니다.
 
Controller 클래스에는 File 방법이 있습니다. 물론 N개의 재부팅이 있고 되돌아오는 대상이 다릅니다. FileContent Result 형식의 File 방법을 찾아야 합니다. 요소에서 src 속성은 FileStream Result 대상의 내용을 읽을 수 없고 공백이기 때문에 FileStream Result로 되돌아갈 수 없습니다.
 
다음 코드를 참고하십시오. 복잡하지 않습니다. 제가 먼저 직사각형을 그린 다음에 직사각형에 문자를 그리고 돌아갑니다.
        public ActionResult GetImg()
        {
            Bitmap bmp = new Bitmap(100, 35);
            Graphics g = Graphics.FromImage(bmp);
            g.Clear(Color.White);
            g.FillRectangle(Brushes.Red, 2, 2, 65, 31);
            g.DrawString("  MVC", new Font("  ", 15f), Brushes.Yellow, new PointF(5f, 5f));
            MemoryStream ms = new MemoryStream();
            bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
            g.Dispose();
            bmp.Dispose();
            return File(ms.ToArray(), "image/jpeg");
        }

 
이 방법은 컨트롤러에 정의되어 있으며, Action에 속합니다.
프론트 데스크 페이지에서 우리는 이렇게 처리한다.
    <div>
        <img src="/Home/GetImg" width="100" alt="" />
    </div>

이렇게 하면 우리는 필요할 때 JS를 통해 조작할 수 있다. 예를 들어 무작위 그림이나 인증 코드 등을 되돌려준다.
 
 

좋은 웹페이지 즐겨찾기