2012-03-22 3 views
3

私はOrchard CMSのレンダリングとビューエンジンを解剖して、どのように組み合わされているかを理解しています。私は、RenderBodyとRenderSectionのどちらも呼び出されていないことを発見しました。 Razorビューエンジンは、どちらか一方への呼び出しが必要であると私は理解しています。オーチャードはRenderBodyへの呼び出しなしでどのように逃げますか?

RazorによってRenderBodyまたはRenderSectionを呼び出さなければならない、または例外がスローされるという要件を克服するのは何ですか?

カスタムビューエンジン(ThemeAwareViewEngine)がありますか?もしそうなら、コンテンツを生成するためにRazor構文を解析する方法は?

ありがとうございます。

答えて

2

実際には逆です。 Razor自体は、RenderBodyがこの要件を持つRazorViewEngineと呼ばれる必要はありません。まったく異なる作業方法を持つRazorを使用する別のビューエンジンが間違いなく存在する可能性があります。 https://github.com/Antaris/RazorEngineまたはhttps://github.com/Buildstarted/RazorSharpを見てください私はまた、いくつかの単純なレイアウトにかみそりを使用するマークダウンビューエンジンを作成しました。

ソースを読むことから、カスタムビューエンジンがいくつか作成されたように見えます。それらのRazorViewEngineは、自分のカスタムWebViewPage(これは、DisplayZoneのエイリアス)を持つカミソリ生成ファイルの基本クラスを置き換えます。これは、子どものビューをレンダリングできるようにするもので、LayoutAwareViewEngineには、DocumentZone,ContentZoneなどのようないくつかのタイプのゾーンがあるように見えます。

最終的に彼らは多くのカスタムコードを実行しました。

+0

だから私は参照してください。私はこれを消化させてください。ありがとう! – rboarman

+0

それを理解するにはかなりの掘り起こしが必要でしたが、それは本当にきれいに見えます。間違いなくそれをもう少しチェックするつもりですので、質問ありがとう:) – Buildstarted

関連する問題