【问题标题】:Convert Razor View to string with JavaScript rendering使用 JavaScript 渲染将 Razor 视图转换为字符串
【发布时间】:2019-08-30 17:54:27
【问题描述】:

这些答案将 Razor 视图呈现为字符串,但不在呈现的 HTML 中执行脚本:

将 Razor 视图渲染为字符串的结果:

<body>
    <div id="Test"></div>
    <script type="text/javascript">      
    document.getElementById("Test").innerHTML = "whatever";
    </script>
</body>

理想情况下,结果应该是:

  <body>
    <div id="Test">whatever</div>
    <script type="text/javascript">      
    document.getElementById("Test").innerHTML = "whatever";
    </script>
  </body>

在服务器上呈现 Razor 视图时,有什么方法可以让 JavaScript 被评估?

【问题讨论】:

    标签: .net asp.net-core razor


    【解决方案1】:

    Razor 归根结底是一个字符串模板引擎。它实际上对 HTML 文档了解不多,但它擅长评估模板。

    Razor 忽略您的 JavaScript 代码,因为:

    • 它不像浏览器那样构建文档对象模型 (DOM)
    • 它没有 JavaScript 解释器来执行 JavaScript 代码

    为了达到理想的结果,您需要这两者。这超出了 Razor 的范围。对于成熟的浏览器来说,这确实是一项工作。

    我自己没有使用过它,但我会查看Puppeteer Sharp 库。使用该库或类似库,您可以获取任意 HTML + JavaScript,像浏览器一样对其进行评估,然后捕获生成的文档以获得所需的输出。

    【讨论】:

    • @Watson 很高兴听到这个消息! ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 2018-03-14
    • 2022-01-14
    • 1970-01-01
    相关资源
    最近更新 更多