使用ajax从数据库显示图像

时间:2009-12-16 04:02:07

标签: jquery asp.net-mvc ajax

我只是想知道是否有可能从视图中发出一个ajax请求,直接将图像数据注入图像标记。

为了提供更多细节,我在stackoverflow中借用了一些代码。

控制器;

public FileResult GetImage(int id)
{
  return File(PhotoHelper.GetImageBytes(id), "image/jpeg");
}

查看:

<%= Html.Image("img", "/Photos/GetImage?id=" + Model.Photo.Id.ToString(), "BioPic", new { Width = "350px" })%>

是否可以使用ajax从GetImage(int ID)加载另一个另一个图像?

2 个答案:

答案 0 :(得分:3)

任何路由到GetImage()方法的HttpRequest都会生成一个jpeg图像。如果您使用javascript动态创建另一个图像标记并将其src属性设置为“/ Photos / GetImage?id = x”,则将对该控制器执行另一个HttpRequest,并将创建另一个图像。

编辑:您在帖子中标记了jquery,所以这里是jquery:

var newImage = $('<img />');
newImage.attr('src', '/Photos/GetImage?id=' + someIntegerHere);
$('#mycontainer').append(newImage);

答案 1 :(得分:0)

如果将图像放在包含必须显示图像的代码的局部视图中,则可以在控制器中执行返回RenderPartial(“imagectrl”,Model.Photo.Id.ToString());

我认为应该可以正常工作。

这是未经测试的,但我认为这就是我如何实现同样的事情。