I am attempting to access values in the Categories and Keywords information for a Tridion Publication via a Razor TBB in Tridion 2011. The Razor documentation lists the following example code:
<ul>
@foreach (var keyword in Publication.MetaData.SomeKeywordFields) {
<li>@keyword.Title (@keyword.Id)</li>
}
</ul>
I have a Keyword inside of a Category though… in fact, that’s the only way I am myself aware that you can even have a Keyword in Tridion, but correct me if I am wrong. Extrapolating from the example’s syntax, I tried the following where “myCategory” is a Category in the publication, and “myKeyword” is a Keyword inside of the myCategory Category:
@foreach (var keyword in Publication.MetaData.myCategory) {
if(@keyword.Title == "myKeyword") {
@keyword.Title
}
When I run this template, I get an error stating that DynamicItemsFields: Key ‘testcategory’ Not Found In ItemFields (Object reference not set to an instance of an object)
Can anyone help with identifying if it is even possible to do what I am attempting here (as it seems like it is based on the documentation but still not sure) and if so, provide an example of the correct syntax?
You’re almost there with your code except that you’re using the actual CategoryName. As Puf commented, you have to use the “fieldname” of you Publication Metadata not the actual CategoryName. You should just change the “myCategory” to the actual fieldname
[FIELDNAME] –> is the XMLName of publication metadata schema.