缩放库无法从控制器工作

时间:2011-01-02 11:32:09

标签: jquery asp.net-mvc

新年快乐。

我正在使用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

2 个答案:

答案 0 :(得分:0)

我的第一个猜测是这是一个标题问题,使您的缩放库不会将其显示为叠加层。找出静态服务图像和控制器提供的图像的标题差异。

您可能必须创建一个自定义ImageResult类来添加正确的标题等。

答案 1 :(得分:0)

您不能将url-smallurl-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错误并且插件已成功应用。