HomeDev GuideRecipesAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunityOptimizely AcademySubmit a ticketLog In
Dev Guide

ContentType attribute

Describes the ContentType attribute, used in Optimizely to define a set of properties needed when creating content types such as pages and blocks.

Configurable properties

The ContentType attribute is required for content types. It is located in the EPiServer.DataAnnotations namespace and has the following configurable properties.

PropertyDescriptionDefault value
AvailableInEditModeDefines whether content of this type is creatable in edit view.true
DescriptionText that describes the function of the ContentType.NULL
DisplayNameThe name shown in edit view for this ContentType.NULL
OrderThe sort order used to determine the position of the ContentType in listings.100
GUIDIdentifier for the ContentType. Matches the code definition to an existing definition in the database.Guid.Empty
GroupNameName for grouping content types when displaying them for selection in edit view.NULL

Access

The optional Access attribute defines which users, roles, and audiences have access rights to create content of a specific type in the UI. Filtering based on this attribute is applied after ordinary access rights on content.

📘

Note

If the Access attribute is not present, any user (who has edit access) creates content of the specific type.

PropertyDescriptionBehavior if not specified
Users, Roles, VisitorGroupsDefines which users, roles, and audiences have access rights.No user has access to ContentType.
AccessDefines the level of access to grant.Content types support access level Create only.

AvailableContentTypesAttribute

Use AvailableContentTypesAttribute to set which content types are available under a content instance. It has the following configurable properties.

PropertyDescriptionDefault value
AvailabilityDefines whether all or no content types are available. If set to none, other settings on the attribute are ignored.Availability.All
IncludeA type array of typed content to specify which content types are available under a content instance of the type with the attribute.Type[0]
ExcludeA type array of typed content to specify which content types are not available under a content instance of the type with the attribute.Type[0]
IncludeOnStates that the content with this attribute is available under the typed content in the type array.Type[0]
ExcludeOnStates that the content with this attribute is not available under any of the typed content in the type array.Type[0]

The types given on Include, Exclude, IncludeOn, and ExcludeOn are typed content directly, or the type of an interface or a base class. Registered types that are assignable to the specified type are included at registration. For example, if an interface is specified in an Include list, then typed pages that implement the interface are included.

Include differs from IncludeOn in the following ways:

  • Include excludes typed content except that which is specified.
  • IncludeOn does not exclude any content type for types that have all content types available.
Types given on Include, Exclude, IncludeOn, and ExcludeOn as typed content directly or as an interface or base class type

Exclude differs from ExcludeOn in the following ways:

  • Exclude – If types are not registered in Include, then registered page types are available except the types in the Exclude specifications.
  • ExcludeOn – If types are registered in Include, then those types are available except the types in the ExcludeOn specifications.
Exclude and ExcludeOn examples showing how types are filtered based on Include registrations

The following image shows how Availability is mapped to settings in the admin view.

Availability mapped to settings in the admin view with corresponding configuration options

ImageUrl

Use the ImageUrl attribute to set the icon for content types. The icon is visible in the UI when creating content.

PropertyDescriptionDefault value
PathThe path to the icon to use for the page type.NULL