4

したがって、すべてのデータがデータベース、ページコンテンツ、およびすべての内部に格納されているという理由だけで、(ServiceStackに自動的に処理させるのではなく)独自のカスタムルートマッピングを処理しています。一連の_Layout.cshtmlファイルがあり、Markdownは文字列として保存されています。

したがって、マップされたルートに対してどのタイプのサービス(通常のサービス?)を継承する必要があり、「文字列YでレイアウトXとマークダウンを使用する」状態に戻す必要があるのか​​を尋ねていると思います。

ServiceStack Wikiの例と新しいサンプルページを読みましたが、これを実現するためのサンプルを見つけることができませんでした(すべてがファイルからMarkdownを読み取り、Razorがデータベースから変数を読み取っているように見えました)。

質問が明確でない場合はお知らせください。それに応じて修正させていただきます。

-

編集

いくつかの説明:

はい、通常のRazorページをロードしました。はい、ロードするファイルから通常のマークダウンを取得しました。

私は今、Markdownを(私のデータベースからの)文字列にあるRazorメソッド "RenderBody()"にレンダリングする方法に興味があります。

4

1 に答える 1

5

単にMarkdownテキストをHTMLとしてレンダリングしたい場合(Markdown Razorではなく、つまり、かみそりの機能はありません!)、次の2つの手順を実行する必要があります。

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

これで、レンダリングされたHTMLをRazorビューの適切な場所などに追加するだけで済みます。


ただし、目標がRazorビューで通常のMarkdownビュー(つまり.md、ServiceStackプロジェクトのファイル)をレンダリングすることである場合は、次の見積もりに従う必要があります。

Razorページに部分的なMarkdownビューを含める

私たちはMarkdownとRazorをとても気に入っていたので、ServiceStackに含まれているのは、既存のRazorユーザーにすぐに馴染むはずのMarkdownRazorと呼ばれるRazor機能と構文を備えたMarkdownの拡張バージョンです。

Razor + Markdownがますます人気のある組み合わせになると予想されるため、@ Html.Partial()サポートを拡張して、さまざまなビューエンジンからのパーシャルも埋め込みます。この機能を使用すると、標準のRazor Partial構文を使用して、コンテンツの多い各Rockstarページで行ったように任意のMarkdownページを埋め込むことができます。

@Html.Partial("Content")

これは、ServiceStackにその場所のページ内に部分的な名前付きコンテンツを埋め込むように指示します。最初に、部分的な名前のContent.cshtmlを検索し、続いて、Markdown RazorViewEngineに到達した場合に部分的な名前のContent.mdを検索します。最初に現在のディレクトリを検索し、続いて/ Views/Sharedフォルダ内の一致するパーシャルを検索します。

http://razor.servicestack.netから引用。

于 2012-10-19T15:20:24.817 に答える