エクスペリエンス エディターでMVCフォームを追加できない


解説

エクスペリエンス エディターのページにMVCフォームを追加すると、ブラウザのコンソールで次のエラーが発生して失敗する場合があります。

Uncaught TypeError: $ is not a function
    at eval (eval at <anonymous> (16326293963705728857.JS:23), <anonymous>:3:31)
    at eval (eval at <anonymous> (16326293963705728857.JS:23), <anonymous>:8:15)
    at eval (<anonymous>)
    at 16326293963705728857.JS:23
    at Function.globalEval (16326293963705728857.JS:23)
    at HTMLScriptElement.bl (16326293963705728857.JS:23)
    at Function.each (16326293963705728857.JS:23)
    at init.domManip (16326293963705728857.JS:24)
    at init.domManip (16326293963705728857.JS:40)
    at init.append (16326293963705728857.JS:24)

この事象は、フォームをレンダリングする前にロードする必要のあるスクリプトが欠落している為に発生します。スクリプトは、公式のSitecoreドキュメントで説明されているように、「MvcOuterLayout.cshtml」レイアウトが適用される際に、「@Html.RenderFormScripts()」ヘルパーによって追加されます。本件は、Sitecore Formsバージョン9.0.0~9.2.0で発生します。

解決策

本事象を解決するには、次のスクリプトをレイアウトの<head>セクションに手動で追加します(.cshtmlファイル)。