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