4

所以我正在处理我自己的自定义路由映射(而不是让 ServiceStack 自动处理它),仅仅是因为我的所有数据都存储在数据库、页面内容和所有内容中。我有一系列 _Layout.cshtml 文件,我的 Markdown 存储为字符串。

所以我想我在问,我需要为我的映射路由继承什么类型的服务(常规服务?),我需要返回什么状态“在字符串 Y 中使用布局 X 和 Markdown”?

我已经阅读了 ServiceStack Wiki 和新示例页面上的示例,但找不到任何示例来实现这一点(一切似乎都是从文件中读取 Markdown,而 Razor 从数据库中读取变量)。

如果我的问题不清楚,请告诉我,我很乐意相应地修改它。

--

编辑

一些澄清:

是的,我可以加载常规的 Razor 页面。是的,我从要加载的文件中获得了常规的 Markdown。

我现在只是好奇如何将 Markdown 渲染到字符串中的 Razor 方法“RenderBody()”(来自我的数据库)。

4

1 回答 1

5

如果您只是想将Markdown 文本呈现为 HTML(不是 Markdown Razor,即没有 razor 功能!),您需要执行以下两个步骤:

var renderer = new MarkdownSharp.Markdown();
string html = renderer.Transform("___your_markdown_markup_here___");

例如,现在您只需将呈现的 HTML 添加到 Razor 视图中的适当位置。


但是,如果您的目标是在 Razor 视图中呈现正常的Markdown 视图(即.mdServiceStack 项目中的文件),则需要遵循以下引用:

在 Razor 页面中包含部分 Markdown 视图

我们非常喜欢 Markdown 和 Razor,ServiceStack 中包含了 Markdown 的增强版本,它具有 Razor 功能和称为 Markdown Razor 的语法,现有 Razor 用户应该立即熟悉。

由于我们期望 Razor + Markdown 成为越来越流行的组合,我们扩展了 @Html.Partial() 支持以嵌入来自不同视图引擎的 Partials。此功能允许您嵌入任何 Markdown 页面,就像我们使用标准 Razor Partial 语法在每个内容繁重的 Rockstar 页面中所做的那样:

@Html.Partial("Content")

这告诉 ServiceStack 在该位置的页面内嵌入一个名为 Content 的 Partial。首先,如果它到达 Markdown Razor 视图引擎,它将查找一个名为 Content.cshtml 的 Partial,然后是一个名为 Content.md 的 Partial。最初,它搜索当前目录,然后搜索 /Views/Shared 文件夹中的任何匹配的 Partials。

引自http://razor.servicestack.net

于 2012-10-19T15:20:24.817 回答