umbraco razor - getting fields from content
Solution 1
There are some great resources you should take a look at while you are learning Razor:
Umbraco Razor Feature Walkthrough - An eight part blog post series of many of the new Razor features in Umbraco 4.7 with examples.
Razor DynamicNode Cheat Sheet - A PDF of all the properties and methods available to the Razor
DynamicNode
object (that includes@Model
).Cultiv Razor Examples - An Umbraco website that you can download and open with WebMatrix or IIS and see various ways to access properties with Razor.
Razor snippets - A compilation of different snippets, examples, etc. from Our Umbraco.
But in answer to your question, to get a property of a specific node you have to get the actual DynamicNode
object first, then use the property alias to access the property value. Example:
@{
//Get the node
dynamic node = Library.NodeById(1720);
// Display the property
@node.newsIntro
}
To access a property from the current page, you simply use Model
:
@Model.newsIntro
or
@Model.bodyText
or
@Model.Name
Solution 2
First, get an IPublishedContent object from the TypedContent method and then use GetPropertyValue to retrieve the value of the field.
@{
int nodeId = 1720;
IPublishedContent contentNode = Umbraco.TypedContent(nodeId);
var newsIntro = contentNode.GetPropertyValue("newsIntro");
}
<p>@newsIntro</p>
Solution 3
With Umbraco 7 I used this code to get property from different pages:
@Umbraco.Content(1720).newsIntro
LeBlaireau
Updated on December 02, 2020Comments
-
LeBlaireau over 3 years
I have a 6 items of the same content type "news", in each item I have a field newsIntro. I want to put the fields in specific pages on another page so I need to target a specific field so it may be newsIntro on node 1702. I have tried a few things like
@1720.newsIntro
how do I target a specific field
Thanks
-
ahwm over 6 yearsThis was exactly what I needed. I needed it from within a
foreach
loop and so it already had thevar item in selection
so I just changed the above toUmbraco.TypedContent(item.Id)
and left out the first line. Worked perfectly! -
ahwm over 6 yearsTo get it from within a
foreach
(using the query builder, for example) substitute the hardcoded id (1720
) withitem.Id
.