Asp.net 核心 mvc 使用 Base64 将错误的字符串值解析为 <script>

Asp.net core mvc parsing wrong string value to <script> using Base64

我有一个应用程序,您可以在其中上传和查看图像,并且我正在尝试在不使用免费试用版或昂贵的软件包的情况下实现 pdf。

应用程序的工作原理:

  1. 正在上传文件
  2. 将文件 (IFileFormat) 解码为字节
  3. 将字节放入数据库
  4. 从数据库中获取字节
  5. 将字节转换为 base64
  6. 创建 link 并查看图像(作品)。或使用 pdf.js 将 pdf 绘制为 canvas
  7. 上的图像

控制器代码:

            string imageDataBytes = Convert.ToBase64String(image.FileData);
            ViewBag.basesixtyfour = imageDataBytes;
            Console.WriteLine(imageDatabytes);

脚本代码:

<script>
    console.log('@ViewBag.basesixtyfour');
</script>

简而言之,控制台 writeline 给了我一个 275,500 字节 .

的字符串值

console.log 给了我一个字符串值,它是 308,050 字节

我也试过使用模型来携带字符串,但出现了同样的问题。 所以问题是,为什么会这样?有什么解决方法吗?

想了想。

必须为 json 序列化,然后使用 Newsoft.Json

反序列化

控制器

ViewBag.story = JsonConvert.SerializeObject(imageDataBytes);

查看

var pdfData = atob('@Html.Raw(JsonConvert.DeserializeObject(ViewBag.story))');