我正在使用http://www.dfc-e.com/metiers/multimedia/opensource/jquery-fancyzoom/,它允许我点击拇指指甲图像并查看更大的版本,该图片显示为点击的缩略图图像上方的叠加层。然后我可以关闭图像(通过close.png按钮)。
使用的html代码是:
<% var url-small = Url.Action("GetThumbNail", new {id = item.ID });%>
<% var url-large = Url.Action("GetLargeImage", new {id = item.ID });%>
<a href="<%: url-large %>">
<img src="<%: url-small %>" alt="" height="50" width="50"/>
</a>
现在我的控制器中有:
public ActionResult GetLargeImage(int id)
{
byte[] imageData = repository.GetLargeImage(id);;
return File(imageData, "image/jpeg");
}
和我的GetThumbNail操作非常相似,并返回File()。这很好,并且显示缩略图。
当我点击缩略图图像时,会运行“GetLargeImage”动作并且图像显示在新页面上。如果我用“images / testimage.jpg”之类的东西替换url-large,那么当我点击拇指指甲图像时,会显示正确的行为,并且testImage.jpg会在同一行上显示为叠加(缩放版本)页。
因此,似乎使用控制器会导致大图像不会显示为叠加层,而是显示在新页面中。
为什么会发生这种情况?
JD
答案 0 :(得分:0)
我的第一个猜测是这是一个标题问题,使您的缩放库不会将其显示为叠加层。找出静态服务图像和控制器提供的图像的标题差异。
您可能必须创建一个自定义ImageResult类来添加正确的标题等。
答案 1 :(得分:0)
您不能将url-small
和url-large
作为C#中的变量名称(变量不能包含-
),所以我猜您的实际代码不是您目前所显示的:
<a href="<%: Url.Action("GetLargeImage", new { id = item.ID }) %>">
<img src="Url.Action("GetThumbNail", new { id = item.ID })" alt="" height="50" width="50"/>
</a>
此外,您应该确保没有javascript错误并且插件已成功应用。