带有大型嵌入式图像的ASP MVC Razor View抛出CS1647:表达式太长或太复杂而无法编译

时间:2015-09-23 17:45:03

标签: asp.net-mvc razor

我的视图有一个大的嵌入式图像,如下所示:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSU.......YII=" />

当图像太大时,scr属性非常大(它可能有2兆字符)我得到错误: CS1647:表达式太长或太复杂而无法编译

但是,如果src属性具有较少的字符(例如:300,000 characteres),则视图效果很好。

如何在剃须刀视图中使用大型嵌入式图像?

1 个答案:

答案 0 :(得分:0)

You only shold use base64 images when the image is small.

您可以尝试使用以下方法将base64字符串转换为图像:

public Image Base64ToImage(string base64String)
{
  // Convert Base64 String to byte[]
  byte[] imageBytes = Convert.FromBase64String(base64String);
  MemoryStream ms = new MemoryStream(imageBytes, 0, 
    imageBytes.Length);

  // Convert byte[] to Image
  ms.Write(imageBytes, 0, imageBytes.Length);
  Image image = Image.FromStream(ms, true);
  return image;
}

如果您的图片是静态资源,可以尝试将其放入<text> or :@

<text>
    <img src="data:image/png;base64,iVBORw0KGgoAAAANSU.......YII=" />
</text>