在我的控制器中,我检索产品列表以及图像名称,然后将图像缩小到视图所需的大小。图像现在位于内存中,准备写入响应流。我知道客户端将为每个图像发送响应,但我不知道如何连接它来提供图像。
查看代码:
@foreach (var product in Model.Products)
{
@product.Name
<img src="@product.Thumbnail"/>
Priced From [email protected] /cdn-cgi/l/email-protection
}
控制器:
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 })' />
or
<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 是二进制内容或流引用
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)