同じコンテンツタイプ「ニュース」のアイテムが6つあり、各アイテムにフィールドnewsIntroがあります。別のページの特定のページにフィールドを配置したいので、特定のフィールドをターゲットにして、ノード1702のnewsIntroになるようにする必要があります。次のようないくつかのことを試しました。
@ 1720.newsIntro
特定のフィールドをターゲットにするにはどうすればよいですか
ありがとう
同じコンテンツタイプ「ニュース」のアイテムが6つあり、各アイテムにフィールドnewsIntroがあります。別のページの特定のページにフィールドを配置したいので、特定のフィールドをターゲットにして、ノード1702のnewsIntroになるようにする必要があります。次のようないくつかのことを試しました。
@ 1720.newsIntro
特定のフィールドをターゲットにするにはどうすればよいですか
ありがとう
Razor を学習する際に参照すべき優れたリソースがいくつかあります。
Umbraco Razor Feature Walkthrough - Umbraco 4.7 の多くの新しい Razor 機能の例を含む 8 部構成のブログ投稿シリーズ。
Razor DynamicNode チート シート- Razor オブジェクトで使用できるすべてのプロパティとメソッドの PDF DynamicNode
( を含む@Model
)。
Cultiv Razor Examples - ダウンロードして WebMatrix または IIS で開き、Razor でプロパティにアクセスするさまざまな方法を確認できる Umbraco Web サイト。
Razor snippet - Our Umbraco からのさまざまなスニペット、例などの編集。
しかし、質問への回答として、特定のノードのプロパティを取得するには、DynamicNode
最初に実際のオブジェクトを取得してから、プロパティ エイリアスを使用してプロパティ値にアクセスする必要があります。例:
@{
//Get the node
dynamic node = Library.NodeById(1720);
// Display the property
@node.newsIntro
}
現在のページからプロパティにアクセスするには、次を使用しますModel
。
@Model.newsIntro
また
@Model.bodyText
また
@Model.Name
まず、TypedContent メソッドから IPublishedContent オブジェクトを取得し、次に GetPropertyValue を使用してフィールドの値を取得します。
@{
int nodeId = 1720;
IPublishedContent contentNode = Umbraco.TypedContent(nodeId);
var newsIntro = contentNode.GetPropertyValue("newsIntro");
}
<p>@newsIntro</p>
コンテンツからフィールドを取得するために、私はこれを使用しました:
@{
var selection = Umbraco.TypedContent(contentId).Children()
.Where(x => x.IsVisible())
.OrderBy("CreateDate");
}
@foreach(var item in selection){
@item.GetPropertyValue("fieldName1")
@item.GetPropertyValue("fieldName2")
@item.GetPropertyValue("fieldName_N")
}