如何在Razor视图中从数据库渲染Markdown Text?

时间:2012-10-16 16:21:21

标签: markdown servicestack

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

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

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

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

-

修改

一些澄清:

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

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

1 个答案:

答案 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   文件夹中。

引自http://razor.servicestack.net