在我的控制器中,我创建了一个从数据库返回图像的动作。图像存储为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; )。
答案 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" })"/>