获取FileContentResult返回的文件的链接

时间:2014-11-23 19:26:37

标签: asp.net-mvc asp.net-mvc-5

在我的控制器中,我创建了一个从数据库返回图像的动作。图像存储为bytearrays,因此我将内容作为FileContentResult返回。

在视图中,我通过以下方式链接到此操作:

<img src="@Url.Action("GetImage", new { id=a.Id })"/>

控制器操作类似于

public ActionResult GetImage(long id)
{
    var article = SolrOperations.GetArticleById(id);
    if (article != null && !string.IsNullOrEmpty(article.Image) && !string.IsNullOrEmpty(article.ImageType))
    {
        var imageBytes = Convert.FromBase64String(article.Image);
        return new FileContentResult(imageBytes, article.ImageType);
    }
    return null;
}

这不会产生所需的行为(即使显示图像),因为我需要图像的完整链接,即:/getimage/id.jpg而不仅仅是/ getimage / id。原因是我希望使用ImageProcessor.Web通过在图像src属性中提供查询字符串来进一步处理(和缓存)图像(fx src =&#34; myimage.jpg?filter = greyscale&#34; )。

1 个答案:

答案 0 :(得分:0)

如果您想要链接链接,您可以扩展控制器方法签名,如下所示:

public ActionResult GetImage(long id , string src, string filter)

ASP.NET MVC 会绑定此值,您可以在查看上这样写:

<img src="@Url.Action("GetImage", new { id=a.Id, src = "myimage.jpg", filter = "greyscale" })"/>