diff --git a/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/AI/Messages/Contents/DataContentTemplate.cs b/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/AI/Messages/Contents/DataContentTemplate.cs
index e69de29bb2..c197afc0d3 100644
--- a/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/AI/Messages/Contents/DataContentTemplate.cs
+++ b/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/AI/Messages/Contents/DataContentTemplate.cs
@@ -0,0 +1,36 @@
+// Copyright (c) Microsoft. All rights reserved.
+
+using Microsoft.Extensions.AI;
+
+namespace Microsoft.AspNetCore.Components.AI;
+
+///
+/// Default template for rendering DataContent. Renders nothing by default
+/// as DataContent typically contains binary/JSON data not meant for display.
+///
+public class DataContentTemplate : ContentTemplateBase
+{
+ [CascadingParameter] internal MessageListContext Context { get; set; } = default!;
+
+ public override void Attach(RenderHandle renderHandle)
+ {
+ this.ChildContent = this.RenderData;
+ }
+
+ public override Task SetParametersAsync(ParameterView parameters)
+ {
+ parameters.SetParameterProperties(this);
+ this.Context.RegisterContentTemplate(this);
+ return Task.CompletedTask;
+ }
+
+ public override bool When(ContentContext context)
+ {
+ return context.Content is DataContent;
+ }
+
+ private RenderFragment RenderData(ContentContext content) => builder =>
+ {
+ // By default, render nothing.
+ };
+}
diff --git a/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/Demos/SharedState/SharedStateDemo.razor b/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/Demos/SharedState/SharedStateDemo.razor
index 6642fde60e..d1a6d5e8a2 100644
--- a/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/Demos/SharedState/SharedStateDemo.razor
+++ b/dotnet/samples/AGUIDojo/AGUIDojoClient/Components/Demos/SharedState/SharedStateDemo.razor
@@ -15,95 +15,99 @@
CurrentState="@currentRecipe"
OnSnapshot="@DeserializeRecipe"
CurrentStateChanged="@OnRecipeChanged">
-
-