--- name: render-info description: Using the RendererInfo class in Blazor to detect rendering context and interactivity. --- # Using RendererInfo in Blazor The `RendererInfo` class in Blazor provides runtime information about the renderer that is executing the component. It is particularly useful for detecting whether a component is running interactively or statically, and for identifying the specific rendering platform (e.g., Server, WebAssembly, WebView). ## Key Properties ### `IsInteractive` - **Type:** `bool` - **Description:** Indicates whether the component is currently running in an interactive render mode. - **Usage:** Use this to conditionally render UI elements that require interactivity, such as disabling buttons or showing loading indicators during static server-side rendering (SSR) or prerendering. ```csharp @if (!RendererInfo.IsInteractive) {
Connecting...
} else { } ``` ### `Name` - **Type:** `string` - **Description:** Returns the name of the renderer. - **Common Values:** - `"Static"`: Running in static server-side rendering (SSR). - `"Server"`: Running in Interactive Server mode (SignalR). - `"WebAssembly"`: Running in Interactive WebAssembly mode. - `"WebView"`: Running in a Blazor Hybrid application (MAUI, WPF, WinForms). ```csharpCurrent Render Mode: @RendererInfo.Name
``` ## Common Scenarios ### 1. Disabling Inputs During Prerendering When a component is prerendered on the server, event handlers (like `@onclick`) are not active. You can use `RendererInfo.IsInteractive` to disable inputs until the interactive runtime takes over. ```razor ``` ### 2. Rendering Different Content for Static vs. Interactive You might want to show a simple HTML form for static SSR and a rich, interactive component for interactive modes. ```razor @if (RendererInfo.Name == "Static") { } else {