我有一個相同的內容類型「新聞」的6項,在每個項目中我有一個領域newsIntro。我希望把在特定頁面中的字段另一頁上,所以我需要針對特定的領域,因此它可能是newsIntro節點1702我試圖像umbraco剃刀 - 從內容獲取字段
的幾件事情@ 1720.newsIntro
怎麼辦我針對某一特定領域
感謝
我有一個相同的內容類型「新聞」的6項,在每個項目中我有一個領域newsIntro。我希望把在特定頁面中的字段另一頁上,所以我需要針對特定的領域,因此它可能是newsIntro節點1702我試圖像umbraco剃刀 - 從內容獲取字段
的幾件事情@ 1720.newsIntro
怎麼辦我針對某一特定領域
感謝
有你應該看看在你學習剃刀一些重要的資源:
Umbraco Razor Feature Walkthrough - 在Umbraco 4.7中的許多新Razor功能的八部分博客系列的例子。
Razor DynamicNode Cheat Sheet - 可用於剃刀DynamicNode
對象(包括@Model
)的所有屬性和方法的PDF。
Cultiv Razor Examples - 您可以下載並使用WebMatrix或IIS打開並查看使用Razor訪問屬性的各種方法的Umbraco網站。
Razor snippets - 來自我們的Umbraco的不同摘錄,示例等的彙編。
但在回答你的問題,讓你必須首先獲得實際DynamicNode
對象,然後使用屬性別名來訪問屬性值的特定節點的屬性。例如:
@{
//Get the node
dynamic node = Library.NodeById(1720);
// Display the property
@node.newsIntro
}
從當前頁面訪問屬性,您只需使用Model
:
@Model.newsIntro
或
@Model.bodyText
或
@Model.Name
用一把umbraco 7我使用此代碼來獲取道具從不同的頁面erty:
@Umbraco.Content(1720).newsIntro
首先,從我們的TypedContent方法的IPublishedContent對象,然後使用GetPropertyValue檢索字段的值。
@{
int nodeId = 1720;
IPublishedContent contentNode = Umbraco.TypedContent(nodeId);
var newsIntro = contentNode.GetPropertyValue("newsIntro");
}
<p>@newsIntro</p>
這正是我所需要的。我在'foreach'循環中需要它,所以它已經有了'var item in selection'選項,所以我只是將上面的內容更改爲'Umbraco.TypedContent(item.Id)',而忽略了第一行。完美工作! – ahwm
如果內容項1720是父母還是要使用值的頁面的祖先,你可以得到它遞歸這樣的:
@Umbraco.Field("newsIntro", recursive: true)
從內容獲取領域我有使用這個:
@{
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")
}
爲了從'foreach'中(例如使用查詢生成器)從'item.Id'替換硬編碼的id('1720')。 – ahwm