0

HTML要素がレンダリングされる前に、すぐにWebページにレンダリングする.NETとRazorに基づくスクリプトがあります。MySQL クエリとは別に、スクリプトは以下を使用して画面上のデータの一部のみを書き込みます。

Response.Write("Some data");

Umbraco v4.7.2 を使用しており、ドキュメント全体が読み込まれた後、マクロを挿入した場所にスクリプトをレンダリングしたいと考えています。次のようなイベント ハンドラーでスクリプトをラップしようとしましたが、これが認識されず、スクリプト全体がテキストとしてレンダリングされます。

protected void Page_LoadComplete(object sender, EventArgs e)  {
    Response.Write("Page Load Complete!");
}

イベント ハンドラーは頻繁に使用されているようですが、Umbraco のドキュメントをよく理解していません。レンダリングするために Razor スクリプトで参照する必要があるものはありますか? 参照する必要がある「cs」ファイルはありますか?

また、「RenderEvent」属性を使用してみましたが、これはスクリプトに基づいて何もしていないようです。

4

2 に答える 2

1

Umbracoイベントは、主にAPIを処理するときに使用されます。ドキュメントが保存、公開、削除されたときなど。

別のアプローチを使用して、Umbraco基本クラスを構築し、ロード時にJavascriptAJAX呼び出しを使用して結果をプルダウンすることができます。Umbracoベースを使用すると、APIを介してUmbracoにアクセスできるREST拡張機能をすばやく構築できます。

基本クラスの例を次に示します。

using umbraco.presentation.umbracobase;

namespace BaseExample
{
    [RestExtension("MyAlias")]
    public class TestClass
    {
        [RestExtensionMethod(allowAll = true)]
        public static string GetData()
        {
            return "Some data";
        }
    }
} 

より詳細な手順は、Umbracowikiにあります。基本クラスのDLLをbinディレクトリに配置した後、に移動してメソッドの呼び出しを呼び出すことができますhttp://[domain]/base/MyAlias/GetData。デフォルトでは、メソッドはXMLを返しますが、Javascriptとより簡単に統合するために、代わりにJSONを返すようにすることができます。詳細については、このSOの回答を確認してください。

于 2012-06-28T14:35:40.927 に答える
0

私はついにこれに対する最も簡単な解決策を見つけました。Response.Write("Some data") の代わりに @Html.Raw() を使用すると、必要なことを実行できました。

于 2012-09-25T08:22:15.513 に答える