web-dev-qa-db-ja.com

MVCとUmbracoの統合

http://memoryleak.me.uk/2009/04/umbraco-and-aspnet-mvc.html からの手順に従い、MVCをUmbracoに統合して成功しましたが、まだ私にとって重大な問題。

Umbracoで定義されたテンプレートをMVCビューで継承する方法はありますか?私が理解しているように、問題はUmbracoテンプレートが実行時にのみHTMLになり、@nodeNameとしてのdoctypeプロパティが認識されず、このために「オブジェクトnull参照」例外がスローされることです。

ありがとうございました!

70
Lucian Podereu

この質問は本当に古く、現在のバージョンのUmbracoには関係ありません。

誰かがまだ気付いていない場合に備えて---2013年以降のUmbracoのすべてのバージョン(6、7、現在は8)はMVCをサポートしています

6
wingyip

ブログ投稿を見てみると、これは実際にはUmbracoと統合されているのではなく、Umbracoと連携しているようです。

それは事実上それ自身のHttpHandlerであるという点で。これは、UmbracoHttphandlerとテンプレートおよびCMS自体に関連するUmbraco機能のすべてをバイパスしていることを意味します。

MVCにUmbracoテンプレートを利用させることは、(おそらく)コアアプリケーション(バージョン4以降)を変更しないと不可能です。ただし、これは、UmbracoがMVCアプリケーションのコンテンツリポジトリとして機能する状態で、Umbracoと一緒にMVCを使用できないことを意味するものではありません。

Umbracoからデータを取得してビューで利用できるようにするMVCコントローラーを簡単に作成できます。たとえば、これにはUmbracoLinq2Umbracoを使用できます。

発生している正確なエラーと正確に達成しようとしていることについて詳細を説明する場合、解決策は、Umbraco 4+にネイティブなことを強制的に実行させるのではなく、アプリケーションを構造化する方法にある可能性がありますUmbraco 5(今年中にリリースが予定されています)。 5のソースコードは Codeplex にあり、Umbracoコアチームがこれにどのように取り組んでいるかを確認するのに適した場所かもしれません。

これについては古い議論があります: http://forum.umbraco.org/yaf_postst5106_Using-ASPNET-MVC-with-Umbraco.aspx

そして最近ではここに: http://our.umbraco.org/forum/getting-started/installing-umbraco/2668-Use-Umbraco-with-aspnet-MVC

詳細については、こちらをご覧ください: http://our.umbraco.org/forum/developers/extending-umbraco/17523-Umbraco-461-and-MVC-

そしてさらにここに: http://our.umbraco.org/forum/developers/extending-umbraco/6837-Umbraco-Website-And-MVC-Website-In-ONE

5
Tim Saunders

Umbracoコントロールを使用するのではなく、 mbraco.NodeFactory.Node クラスを使用して表示しようとしているコンテンツを取得する HtmlHelper拡張メソッド を作成することを検討してください。あなたの見解では。 umbraco.presentation.templateControls.Itemおよびumbraco.presentation.templateControls.Macroを模倣する(またはニーズに基づいて単純化する)メソッドを作成するだけで十分な場合があります。

[〜#〜]編集[〜#〜]

私はある程度の成功を収めてこの道を進みました。また、MVCソースを調べて、基になるWebフォームコントロールコレクションに部分ビューがどのように追加されているかを調べました。 umbraco.presentation.templateControls.Macroクラスによく似たSystem.Web.Mvc.ViewUserControlクラスを継承するクラスを作成することになりました。

2
Aaron