2

どのumbraco:itemをレンダリングするかを選択するカミソリ マクロMySelectMacroを作成したいと考えています。

この場合の単純な構造は 2 つのページ(MasterPage と TextPage) であり、TextPage にはリッチテキスト エディター タイプの 2 つのフィールド ( field_1と field_2) が含まれています。

これはうまくいかない私の試みです、

TextPageテンプレート は次のとおりです。

<asp:Content ContentPlaceHolderId="MainPageContent" runat="server">
        <umbraco:Macro Alias="MySelectMacro" runat="server" />
</asp:Content>

ここにマクロMySelectMacroがあります:

@if (condition)
{
    <umbraco:Item field="field_1" runat="server" />
}
else
{
    <umbraco:Item field="field_2" runat="server" />
}

nb: アンブラコとカミソリは初めてです

4

3 に答える 3

3

Razor テンプレート内でサーバー タグを使用することはできません。次のようなタグ:

<umbraco:Item field="field_1" runat="server" />

しかし、あなたは呼び出すことができます

@Model.field_1

最終バージョンは次のようになります。

@if (condition)
{
    @Model.field_1
}
else
{
    @Model.field_2
}

umbraco のカミソリ マクロに関するこの投稿を確認してください: http://www.diplo.co.uk/blog/2011/6/17/using-razor-in-umbraco-47.aspx

于 2013-09-02T09:04:30.830 に答える
0

WebForm と Razor の構文を混在させることはできません!

新しい Razor 構文の古い umbraco:item に相当するものは次のようになります。

@Umbraco.Field("field_1")

段落タグの削除フラグなど、さまざまなパラメーターを渡すこともできます。

@Umbraco.Field("field_1", removeParagraphTags = true)
于 2015-08-05T15:44:56.427 に答える
0

私はこの答えにつまずいただけで、私のように読んでいる他の人にとっては、2015年以降、そうではありませ@Model.field@Dictionary["field"].

ここで説明します:

https://our.umbraco.org/documentation/reference/templating/macros/razor/using-dictionary-items

いずれにせよ、フィールド名に特殊文字が含まれている場合でも、クォータとブラケットを使用することで、ASP スクリプトの残りの部分が妨げられることはありません。

于 2015-08-05T12:07:10.037 に答える