ASP.Net MVC如何在视图中显示模型的图像属性?
问题描述:
我是新来的asp.net mvc,但我想用GDI +做一个有趣的应用程序,我需要用asp.net mvc做一些图像视图。ASP.Net MVC如何在视图中显示模型的图像属性?
我有具有图像属性的Model:
namespace DomainModel.Entities
{
public class BackgroundImage
{
// Properties
public Image Image {get; private set; }
public BackgroundImage()
{
Image = Image.FromFile(@"D:\ProjectZero\DomainModel\image\bkg.PNG");
}
}
}
控制器发送到以下的视图:
public ActionResult Index()
{
BackgroundImage bkImg = new BackgroundImage();
return View(bkImg);
}
视图看起来像这样:
<p> Height: </p><%= Model.Image.Height //it prints the height of the image %> </br>
<p> Width: </p><%= Model.Image.Width //it prints the width %> </br>
<p> Image: </p><%= Model.Image //does not work to display the image %>
我如何显示该图像属性?
我需要一个div的背景图片。我不需要调整图像大小,我只需要以正常大小显示它。
是否有我错过的Html Helper?
谢谢,你的时间!
答
你需要写一个控制器动作,将写入图像到响应流,并设置适当的内容类型说“图像/ PNG”。然后你可以使用img
标签在视图中引用这个动作:
public ActionResult Image()
{
byte[] image = GenerateImage();
return File(image, "image/png");
}
而且你的视图中:
<img src="<%= Url.Action("Image") %>" alt="" />
这解决了我的问题,但我需要使用这样的: 公共字节[ ] ImageToByteArray(System.Drawing.Image imageIn) { MemoryStream ms = new MemoryStream(); imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); return ms.ToArray(); } 用于将我的图像转换为字节数组。 – andreiursan 2009-09-11 08:58:56
我一直在试图做这个为期2天,并已被引导下来的HttpHelpers路径,派生的ActionResults调用ImageResults并没有得到我的地方,这个解决方案第一次工作,非常好! – 2012-04-15 22:05:09
以上视图代码示例中缺少At符号。 – kroiz 2013-08-05 12:46:41