1. 首页 > 电脑教程 > MVC项目中实现图片显示代码

MVC项目中实现图片显示代码

首先,有好一阵没有怎么写博客文章了.实在也是很多事情,确实没有停下来过.

这两天在讲解MVC方面的知识和项目实践,其中有一个小的细节,是有关于图片显示方面的,记录下来供大家参考

在MVC项目中,要显示一个图片,尤其是该图片是存放在数据库的话,还是可以继续使用原先Web Forms的那种ashx的方式。但也可以考虑下面的方式

1.创建一个ImageResult

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web.Mvc;using System.Drawing;using System.Drawing.Imaging;using System.Web;

namespace Extensions{public class ImageResult : ActionResult{public ImageResult() { }public Image Image { get; set; }public ImageFormat ImageFormat { get; set; }public override void ExecuteResult(ControllerContext context){// verify properties if (Image == null){throw new ArgumentNullException("Image");}if (ImageFormat == null){throw new ArgumentNullException("ImageFormat");}// output context.HttpContext.Response.Clear();if (ImageFormat.Equals(ImageFormat.Bmp)) context.HttpContext.Response.ContentType = "image/bmp";if (ImageFormat.Equals(ImageFormat.Gif)) context.HttpContext.Response.ContentType = "image/gif";if (ImageFormat.Equals(ImageFormat.Icon)) context.HttpContext.Response.ContentType = "image/vnd.microsoft.icon";if (ImageFormat.Equals(ImageFormat.Jpeg)) context.HttpContext.Response.ContentType = "image/jpeg";if (ImageFormat.Equals(ImageFormat.Png)) context.HttpContext.Response.ContentType = "image/png";if (ImageFormat.Equals(ImageFormat.Tiff)) context.HttpContext.Response.ContentType = "image/tiff";if (ImageFormat.Equals(ImageFormat.Wmf)) context.HttpContext.Response.ContentType = "image/wmf";Image.Save(context.HttpContext.Response.OutputStream, ImageFormat);}}

}

2,创建一个Action

private string connection =ConfigurationManager.ConnectionStrings["northwind"].ConnectionString;

public ActionResult Image(int id){var db = new NorthwindDataContext(connection);var found = db.Employees.FirstOrDefault(e => e.EmployeeID == id);

if (found != null){var buffer = found.Photo.ToArray();ImageConverter converter = new ImageConverter();var image = (Image)converter.ConvertFrom(buffer);return new Extensions.ImageResult(){Image = image,ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg};

}else{ViewData["message"] = "员工不存在";return View("Error");}

}

3.在页面(View)中调用

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>

Update

Update

<% using (Html.BeginForm()) {%><%: Html.ValidationSummary(true) %>

Fields

" alt="" />

声明:希维路由器教程网提供的内容,仅供网友学习交流,如有侵权请与我们联系删除,谢谢。ihuangque@qq.com
本文地址:https://www.ctrlcv.com.cn/diannao/169347607210781.html