diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index fee2d4e5..2d5410a3 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -52,6 +52,8 @@ namespace Oqtane.Modules public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default + public virtual bool Prerender { get { return true; } } // prerender at server by default + // url parameters public virtual string UrlParametersTemplate { get; set; } diff --git a/Oqtane.Client/UI/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor index 5d429954..53258cea 100644 --- a/Oqtane.Client/UI/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -7,7 +7,7 @@ } else { - + } @code { diff --git a/Oqtane.Client/UI/RenderModeBoundary.razor b/Oqtane.Client/UI/RenderModeBoundary.razor index e4d6873e..d3a11055 100644 --- a/Oqtane.Client/UI/RenderModeBoundary.razor +++ b/Oqtane.Client/UI/RenderModeBoundary.razor @@ -10,7 +10,7 @@ { @if (ModuleType != null) { - @((MarkupString)$"") + @((MarkupString)$"") @DynamicComponent @if (_progressIndicator) diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index 43acc3a6..13c35b17 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -476,6 +476,7 @@ // retrieve module component resources var moduleobject = Activator.CreateInstance(moduletype) as IModuleControl; module.RenderMode = moduleobject.RenderMode; + module.Prerender = moduleobject.Prerender; page.Resources = ManagePageResources(page.Resources, moduleobject.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); if (action.ToLower() == "settings" && module.ModuleDefinition != null) diff --git a/Oqtane.Shared/Interfaces/IModuleControl.cs b/Oqtane.Shared/Interfaces/IModuleControl.cs index 1d442931..b425a311 100644 --- a/Oqtane.Shared/Interfaces/IModuleControl.cs +++ b/Oqtane.Shared/Interfaces/IModuleControl.cs @@ -35,5 +35,10 @@ namespace Oqtane.Modules /// Specifies the required render mode for the module control ie. Static,Interactive /// string RenderMode { get; } + + /// + /// Specifies the prerender mode for the moudle control ie: true or false + /// + bool Prerender { get; } } } diff --git a/Oqtane.Shared/Models/Module.cs b/Oqtane.Shared/Models/Module.cs index bae7a0ca..a875e31b 100644 --- a/Oqtane.Shared/Models/Module.cs +++ b/Oqtane.Shared/Models/Module.cs @@ -117,6 +117,8 @@ namespace Oqtane.Models public bool UseAdminContainer { get; set; } [NotMapped] public string RenderMode{ get; set; } + [NotMapped] + public bool Prerender { get; set; } #endregion