在我的控制器中,我检索产品列表以及图像名称,然后将图像缩小到视图所需的大小.图像现在在内存中,准备写入响应流.我知道客户端会为每个图像发送一个响应,但我不知道如何挂钩它以
查看代码:
@foreach (var product in Model.Products) { @product.Name <img src="@product.Thumbnail"/> Priced From $@product.LowestPrice }
控制器:
model.Products = DataContext.Products.Where(p => p.Category.Name .Equals(id)).Select(m => new ProductListItem { Name = m.Name, Thumbnail = ImageResizer.Resize(m.Image, 75, 100, <normally I put the output stream here>), LowestPrice = SqlFunctions.StringConvert( m.PriceSet.Prices.Min(p =>p.Price1)) } );
ImageResizer.Resize()签名的位置
Resize(string imageName, int width, int height, Stream outputStream)
所以我认为我的问题应该是 – 我为图像名称添加了什么?如何监听可以写入流的每个图像的请求?
获取新动作的路线/动作链接,下载图像以设置为图像URL,<img src='@Url.RouteUrl("Full", new { action = "Image", controller = "Media", number = product.id })' />
要么
<img src='@Url.Action("Image", new { number = 3 })' />
添加具有类似功能的新动作
public ActionResult Image(int? number) { var media = mr.GetMedia(number); return base.File(media.Content, media.ContentType ?? "image/jpeg"); }
其中media.Content是二进制内容或流引用