所以我正在处理我自己的自定义路由映射(而不是允许ServiceStack自动处理它),因为我的所有数据都存储在数据库,页面内容和所有内容中。我有一系列_Layout.cshtml文件,我的Markdown存储为字符串。
所以我想我要问,我需要为我的映射路由继承什么类型的服务(常规服务?),以及我需要返回状态“在字符串Y中使用布局X和Markdown”? / p>
我已经阅读了ServiceStack Wiki和新示例页面上的示例,并且无法找到实现此目的的任何示例(一切似乎都是从文件读取Markdown,而Razor从数据库中读取变量)。
如果我的问题不清楚,请告诉我,我会很乐意相应修改。
-
一些澄清:
是的,我要加载常规Razor页面。 是的,我从正在加载的文件中获得了常规Markdown。
我现在很好奇如何将Markdown渲染到Razor方法“RenderBody()”中,该方法位于字符串中(来自我的数据库)。
答案 0 :(得分:3)
如果您只是想将 Markdown文字呈现为HTML (而非Markdown Razor,即没有剃刀功能!),您需要执行以下两个步骤:
var renderer = new MarkdownSharp.Markdown();
string html = renderer.Transform("___your_markdown_markup_here___");
现在,您只需在适当的位置将渲染的HTML添加到Razor视图中。
但是,如果您的目标是在Razor视图中呈现正常的 Markdown视图(即ServiceStack项目中的.md
文件),则需要遵循以下引用:
在Razor页面中包含部分Markdown视图
我们非常喜欢Markdown和Razor,包括在ServiceStack中 具有Razor功能和语法的Markdown增强版 叫做Markdown Razor,它应该对现有技术很熟悉 剃刀用户。
我们预计Razor + Markdown会越来越受欢迎 组合我们已经扩展@ Html.Partial()支持也嵌入 来自不同View Engines的部分内容。此功能可让您嵌入任何内容 Markdown Page正如我们在每个内容丰富的Rockstar中所做的那样 使用标准Razor Partial语法的页面:
@Html.Partial("Content")
告诉ServiceStack在该位置的页面中嵌入一个名为Content的Partial。首先,它会寻找一个名为Partial的 Content.cshtml后跟一个名为Content.md的Partial(如果到达) Markdown剃刀视图引擎。最初它搜索当前 目录,后跟/ Views / Shared中的任何匹配的Partials 文件夹中。