加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – MVC如何将图像提供给响应流

发布时间:2020-12-16 09:22:40 所属栏目:asp.Net 来源:网络整理
导读:在我的控制器中,我检索产品列表以及图像名称,然后将图像缩小到视图所需的大小.图像现在在内存中,准备写入响应流.我知道客户端会为每个图像发送一个响应,但我不知道如何挂钩它以提供图像. 查看代码: @foreach (var product in Model.Products) { @product.Na
在我的控制器中,我检索产品列表以及图像名称,然后将图像缩小到视图所需的大小.图像现在在内存中,准备写入响应流.我知道客户端会为每个图像发送一个响应,但我不知道如何挂钩它以提供图像.

查看代码:

@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是二进制内容或流引用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读