浏览器与MVC3 Razor上的图像在锚上的作用不同

本文关键字:作用 图像 Razor 浏览器 MVC3 | 更新日期: 2023-09-27 18:10:19

世界!我有一个奇怪的标签。最大的想法是渲染这样的东西:<a href="/*Retrieve an original sized image from database*/"><img src="/*Retrieve an original sized image and resize to thumbnail*/"/> </a>

这就是我需要实现一些jQuery缩放图像插件的地方。我有两种方法——一种是简单地从DB中获取图像,另一种是制作缩略图。

问题是浏览器的行为与我的操作不同:FF、Chrome、Opera在另一个窗口中显示原始图像(如预期(。Safari提供下载一个名为"GetImageThumbnail"的jpg文件,IE提供下载名为GetImageThumb的未知文件(以jpeg图像打开(。

这里是锚点href text:"/Image/GetFullSizedImage?goodId=20"-在所有浏览器上都一样。

这是视图中的辅助对象: @Html.GetImageLinkWithInnerImage(Model.Id)

这里有一个助手实现(对于那些想在助手方法中制作锚点和图像的人来说可能很有用:(

 public static MvcHtmlString GetImageLinkWithInnerImage(this HtmlHelper helper, int goodid)
   {
       var controller = helper.ViewContext.Controller as Controller;
       if (controller != null)
       {
           var urlHelper = controller.Url;
           var photoUrl = urlHelper.Action("GetFullSizedImage", "Image", new { goodId = goodid });
           var anchorBuilder = new TagBuilder("a");
           anchorBuilder.MergeAttribute("href", photoUrl + " ");
           var innerPhotoUrl = urlHelper.Action("GetImageThumbnail", "Image", new { goodId = goodid });
           var imgBuilder = new TagBuilder("img");
           imgBuilder.MergeAttribute("src", innerPhotoUrl);
           imgBuilder.MergeAttribute("alt", "Фото товара");
           anchorBuilder.InnerHtml = imgBuilder.ToString(TagRenderMode.SelfClosing);
           return MvcHtmlString.Create(anchorBuilder.ToString());
       }
       return null;
   }

该方法从数据库检索图像:

 public FileContentResult GetFullSizedImage(int goodId)
    {
        byte[] imageData = _db.GetGood(goodId).Image;
        if (imageData != null)
        {
            int imageWidth;
            int imageHeight;
            var imageFile = GetImageFromBytes(imageData, out imageWidth, out imageHeight);
            return ImageReadyFileContentResult(imageWidth, imageFile, imageHeight);
        }
        return NoPhotoFileContentResult();
    }

这是一个HTML输出:

<a href="/Image/GetFullSizedImage?goodId=20 "><img alt="Фото товара" src="/Image/GetImageThumbnail?goodId=20" /></a>

我做错了什么?

浏览器与MVC3 Razor上的图像在锚上的作用不同

在"ImageReadyFileContentResult(("方法中,指定内容类型。