从 Core 3 的类库中的渲染/处理的 Razor 页面中将 html 作为字符串返回

Posted

技术标签:

【中文标题】从 Core 3 的类库中的渲染/处理的 Razor 页面中将 html 作为字符串返回【英文标题】:Return html as string from rendered/processed Razor Page in Class Library in Core 3 【发布时间】:2020-06-01 12:10:29 【问题描述】:

我有一个包含几个项目的解决方案,其中一个是 Azure 函数应用程序,它调用 .Net 核心类库中的一个方法,该方法负责生成我可以与 IronPdf 库一起使用的 html 来生成一个PDF 文件。 HTML 包含许多表格,这些表格的行数、值等可能会有所不同,类库方法将确保按预期显示。

我遇到的问题是我想利用 Razor Pages 从模板生成 HTML,这样我就可以重用 HTML sn-ps 并将逻辑放入 HTML。

我一直在寻找将 Razor 页面呈现为字符串的方法,而我发现的最有希望的方法需要依赖注入,更重要的是上下文。 这些是我找到的文章(它们显示了相同的问题解决方案):

    https://www.learnrazorpages.com/advanced/render-partial-to-string https://www.mikesdotnetting.com/article/332/rendering-a-partial-to-a-string-in-razor-pages

据我了解,它们只有在 Web 应用程序中才能工作。我希望所有的“渲染”都只发生在类库中。

我想要的是:

    创建具有某些属性的模型实例。 使用实例中的值呈现 Razor 页面(或部分页面)。

我不明白为什么这必须如此困难,或者为什么我需要依赖注入、几个提供程序、一个注入的视图引擎和一个动作上下文。 为什么我不能简单地有一个方法,我只是说:“请取这些值并将它们用于此 .cshtml 文件中的变量,解决它,然后将结果作为字符串返回给我”。

我正在寻找 .Net Core 3 的解决方案,非常欢迎任何显示解决方案或解释复杂性的材料的指导或链接。

问候,马蒂亚斯

【问题讨论】:

【参考方案1】:

这是你要找的RazorLight吗?

【讨论】:

感谢您的建议。看起来它试图做我想要完成的事情,但感觉有点矫枉过正。此外,自述文件非常混乱。 我同意,这绝对是无缘无故的吓人哈哈,我会推荐一些 medium.com 教程/资源,它们会切中要害并实际使用它,如果你可以通过简单的搜索找到一些选择使用它。 你检查RazorEngine了吗?它确实有更好的文档,并且依赖关系更少,但可能已经过时(最后一次提交是一年前)。 我提供的示例中使用的不是 RazorEngine 吗?我可以尝试查看 medium.com,看看是否有人可以提供帮助 :) 谢谢。

以上是关于从 Core 3 的类库中的渲染/处理的 Razor 页面中将 html 作为字符串返回的主要内容,如果未能解决你的问题,请参考以下文章

将数据库模型放入到.Net Core的类库中

2020-02-22ArcGIS Engine中的类库

我需要弄清楚如何将我的类库中的枚举绑定到我的应用程序中的单选按钮

类库中的 HtmlEncode

如何从不同appdomain的类库中调用实例方法?

无法从类库访问 appsettings.json