【问题标题】:Nancy SSVE - save generated HTML to file?Nancy SSVE - 将生成的 HTML 保存到文件中?
【发布时间】:2026-02-01 11:15:01
【问题描述】:

如何将使用 Nancy SSVE 生成的 HTML 存储到文件中?

我们有一半的项目使用 Nancy SSVE 托管 Web UI,以生成模板页面。其中一页是表格报告。该项目的另一部分生成类似的报告,但这些报告存储在磁盘上以供离线查看。但它使用 HtmlTextWriter、嵌套迭代和 if 语句来实现它,因为它是在一段时间之前编写的。

我们可以轻松调整 SSVE 模板和模型以服务于这两种情况,但无法弄清楚如何存储生成的文件。我搜索了View["report.sshtml", reportModel]返回的Negotiator的属性和函数,但找不到任何东西。

我发现的唯一类似问题是https://*.com/a/25848653,但这是关于 Razor 引擎的,我找不到 ViewFactory 属性。

我能想到的唯一解决方案是将页面卷曲,但这需要通过实际的 Web 服务,这显然是不希望的,因为应该有一种方法可以重用 Get["/report"] = GenerateReport 方法。

【问题讨论】:

    标签: c# nancy viewengine


    【解决方案1】:

    由于您使用的是 SSVE,您只需将IViewEngineHost 注入您的模块并调用GetTemplate("report.sshtml",reportModel),它将返回template 内容,然后您可以保存。

    【讨论】:

    • 谢谢,但我找不到要创建的IViewEngineHost 的具体实现,尝试在没有提供者的情况下注入它失败。 SuperSimpleViewEngine 类没有实现它,只包含一个需要它的Render 方法。我正在使用 Nuget 上最新的 Nancy 1.4.5 和 Nancy.Hosting.Self 1.4.1。