0

Umbracover。4.7

私のプロジェクトはasp.netMVC4と一緒に実行されています。Umbracoページがあり、ドキュメントタイプにリッチテキストエディタープロパティがあり、HTMLでテキストの本文を保持します。

System.Net.WebClientクライアントを使用して、MVCプロジェクト内からUmbracoページを要求し、そのページのドキュメントプロパティのコンテンツをMVCコントローラーのWebClient要求に返す方法はありますか?

ボーナス質問:

クエリ文字列パラメーターを解析し、コンテンツがリクエストに返される前にマクロがプレースホルダーを解析されたクエリ文字列パラメーターに置き換えるUmbracoテンプレートにプレースホルダーを持つUmbracoマクロをテンプレートに設定する方法はありますか(説明その上)?

4

2 に答える 2

1

MVC4 プロジェクトに umbraco.dll および umbraco.MacroEngines.dll への参照を追加します。

その後、(コントローラーまたはビュー内で)次のことができるはずです。

dynamic d = new DynamicNode(nodeId);
return d.AliasOfRichTextProperty
于 2012-08-14T14:43:11.893 に答える
1

Umbraco で/Base拡張機能を使用したことがありますか? 同様の要件があり、 /Base が非常に強力であることがわかったため、これが役立つと思います。私のドキュメント タイプでは、HTML (または私の場合は Razor スクリプト) の入力として複数行のテキスト ボックスを実際に使用しました。/Base クラスで、正しいノードを見つけ、テキスト ボックスから生のスクリプトを取得し、スクリプトを生の html 文字列にレンダリングし、タグでラップされた文字列を返すメソッドを作成しました。

public static string GetRazor()
    {
        var doc = new DynamicNode(nodeId);

        string razorScript = doc.GetPropertyValue("{propertyAlias}");
        string razorString = RenderRazor.RenderRazorScriptString(razorScript, nodeId);            

        return razorString;
    }

もう 1 つの方法は、テンプレートが呼び出すことができる Umbraco 内で次のようなマクロを作成することです。

   @using umbraco.MacroEngines
   @{
       dynamic node = @Model;
       string htmlString = node.GetPropertyValue("{propertyAlias}");
       @Html.Raw(htmlString)
    }

次に、テンプレート内にマクロを挿入するだけです。

<umbraco:Macro Alias="{RazorAlias}" runat="server"></umbraco:Macro>

テキスト ボックス内の HTML は、かみそりエンジンによってレンダリングされます。

-ダン

于 2012-08-14T22:14:10.717 に答える