By default Sitefinity uses the IContentLocatableView
interface implemented on the out of the box content widgets in order to track their locations on different pages. This interface powers the Preview functionality from the content modules as well as the Search indexing and the correct resolving of the links in it.
When you click on the Preview button of a built-in content item, Sitefinity searches the page where you have placed the module's widget and then renders the item on its details page.
Regarding custom controls, the Preview functionality will work only if these controls implement the IContentLocatableView
interface. Implementing this interface in your control will basically tell the Preview button where this type of content is placed on the site and will redirect to this location in order to display the content.
After you implement the IContentLocatableView
interface in your MVC controllers, the Preview button will redirect to the url of the module's details page.
Please refer to the documentation for more details:
Register content location with your custom widgets
Locations of content items
Here is also a sample code for your convenience on how this interface is implemented for dynamic module. You can further modify this on your end and make it to work for the content type you need:
var location =
Type testType = TypeResolutionService.ResolveType(
location.ContentType = testType;
var manager = DynamicModuleManager.GetManager();
var providerName = manager.Provider.Name;
location.ProviderName = providerName;
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Sitefinity CMS Ideas&Feedback Portal
and vote to affect the priority of the items