Getting Data
Get data in Razor functions
You can get data from data types by using the Data.Get
method:
<ul> @foreach (var myEvent in Data.Get<Demo.Event>()) { <li>@myEvent.Date: @myEvent.Title</li> } </ul>
In the sample above, data from the Demo.Event data type is presented as a list of items.
To see this code in action, create a data type called "Demo.Event", add two fields - "Title" (String) and "Date" (Date) - and add some data to this data type, or download and install the package with it: Demo.C1RazorFunctions.Events
For demo purposes, you can also use pages (IPage) as your data type without creating other data types, like this:
<ul> @foreach (var myPage in Data.Get<IPage>()) { <li>@myPage.ChangeDate: @myPage.Title</li> } </ul>
For more sample code, please also see "List to Details".
Page data folders and page meta types
You can also use Data.Get
when accessing page-specific folder and meta data. Here, you should make use of SitemapNavigator to get the current page ID (CurrentPageId) and filter data by this specific page.
var myFolderData = from d in Data.Get<My.Folder.Type>() where d.PageId == SitemapNavigator.CurrentPageId select d;You can always fetch the "built-in" page fields through SitemapNavigator, too. For example,
SitemapNavigator.CurrentPageNode.Description
will give you the description of the current page node.<div> @Sitemap.CurrentPageNode.Description </div>(In the example above,
Sitemap
is an initialized SitemapNavigator
object.)