11

Umbraco に関する非常に単純な質問だと思いますが、まだ明確な答えはありません。

@表示変数といくつかのインラインC#コードを備えた、標準的なかみそりテンプレートがあります。

私が使用するテンプレートのある時点で:

@Umbraco.RenderMacro("myCustomMacro");

そこに問題はありません。すべてが期待どおりに機能します。

現在、このマクロはすべてのページに挿入されています (マスター テンプレートにあります) が、コンテンツ作成者がページ プロパティのチェック ボックスを介してオンとオフを切り替えることができるページ プロパティがあります。 .

ただし、特定の「ドキュメントタイプ」に対してこのコンポーネントを表示する必要があることがわかったので、そのチェックを実行する方法を見つけようとしています。

今、私の考えでは、これは次のようなことをするのと同じくらい簡単なはずです:

@{
  if(CurrentPage.documentType == "someDocTypeAliasHere")
  {
     //Render the macro
  }
  else
  {
     // Render the macro only if the tick box is checked
  }
 }

私が言うように、これは非常に単純な操作ですが (またはとにかくそうあるべきだと思います)、これまでのところ結果が得られていないようです。

これまでに何を試しましたか?

カミソリと@CurrentPage変数に関係することについて言及しているour-umbracoのすべてのページを読むことは別にして、私はカミソリのプロパティチートシートを調べて、最も一般的なプロパティと思われるものを試しました。注文):

@CurrentPage.NodeTypeAlias
@CurrentPage.NodeType
@CurrentPage.ContentType
@CurrentPage.DocumentType

そして、それらのさまざまなレターケースの組み合わせに加えて、法案に合うように見える他のいくつかのもの.

プロパティは一貫して存在しないか空であるため、結果を判断するのに役立つ情報がありません。

それで、数日ぐるぐる回ってどこにも行かなかった後、私はここにいることに気づきました..

(注: これは、XSLT の質問を検索したり、子コレクションを反復したりするものではありません。そのため、XSLT、マクロ、ページ テンプレートなどを投稿する要求は拒否されます。私がする必要があるのは、レンダリングされている現在のページのドキュメント タイプを判別する方法。)

乾杯

ショーティ

PS:言及するのを忘れました、私は使用しています

umbraco v 4.11.8 (アセンブリ バージョン: 1.0.4869.17899)

誰かが尋ねた場合に備えて。

4

5 に答える 5

21

Umbraco 7 で使用currentPageNode.DocumentTypeAlias

于 2014-07-29T13:51:31.280 に答える
13

Umbraco 7.1 では、以下を使用します。@if (@CurrentPage.DocumentTypeAlias == "NewsItem")

于 2014-12-19T12:11:45.690 に答える
1

これはこの投稿とは少し関係ありませんが、Google を検索してこの投稿にたどり着いたので、他の人がこの問題に対処している場合に備えて共有したいと思いました: Umbraco 7 で、特定のタイプのサイト内のすべてのコンテンツを取得する:

var articles = CurrentPage.AncestorOrSelf(1).Descendants()
                   .Where("DocumentTypeAlias == \"BlogPost\"").OrderBy("CreateDate desc");
于 2015-01-19T09:03:11.870 に答える