Umbraco 7.0.3 では:
- マクロコンテナのプロパティエディタでマクロコンテナというデータ型を作成
- タイプ マクロ コンテナを持つ Body というプロパティを持つ Contact Form というドキュメント タイプを作成しました。
- _contactForm.cshtml という部分ビューを作成しました (Views\MacroPartials 内)。
- MVC 部分ビュー _contactFrom.cshtml で Contact Form というマクロを作成しました
- Contact Us というタイプの Contact Form の追加コンテンツ
- お問い合わせページの Body と呼ばれる Macro Container プロパティに Contact Form マクロを追加しました
次に、ページを表示するためSurface Controller
にいくつかを呼び出しAJAX
ます (より具体的には、ページの Body プロパティ)。
public class JsController : SurfaceController
{
public ActionResult GetPage(int id)
{
var page = new Node(id);
if (page == null || page.GetProperty("body") == null)
return Content(@"Hmm, something went wrong. Unable to find what you're looking for.");
return Content(page.GetProperty("body").Value);
}
}
このセットアップはほとんど機能しますが、問題は、レンダリングされたフォームではなく、次のものが返されることです。
<!--?UMBRACO_MACRO macroAlias="ContactForm" /-->
したがって、このマクロ\フォーム\部分ビューをレンダリングする必要があります...おそらくコントローラーで行う必要があると思いますが、反対側で(Javascriptを介して)それを行うことができれば、それも同様に機能します. ページ ID とマクロ エイリアスに基づいてマクロをレンダリングするためにコントローラーで呼び出すことができる Umbraco 関数はありますか?