\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Components/MyRootComponent.razor b/BlazorProject/BlazorProject/Components/MyRootComponent.razor
new file mode 100644
index 0000000..18895ba
--- /dev/null
+++ b/BlazorProject/BlazorProject/Components/MyRootComponent.razor
@@ -0,0 +1,16 @@
+@code {
+ [Parameter]
+ public RenderFragment ChildContent { get; set; }
+
+ [Parameter]
+ public string Text { get; set; }
+}
+
+
+ MyRootComponent - @Text
+
+
+ @ChildContent
+
+
+
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Components/MySecondChildComponent.razor b/BlazorProject/BlazorProject/Components/MySecondChildComponent.razor
new file mode 100644
index 0000000..7d207e6
--- /dev/null
+++ b/BlazorProject/BlazorProject/Components/MySecondChildComponent.razor
@@ -0,0 +1,14 @@
+@code {
+ [Parameter]
+ public RenderFragment ChildContent { get; set; }
+
+ [CascadingParameter]
+ public MyRootComponent RootComponent { get; set; }
+}
+
+
+ MySecondChildComponent - @RootComponent.Text
+
+ @ChildContent
+
+
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Components/ShowItems.razor b/BlazorProject/BlazorProject/Components/ShowItems.razor
new file mode 100644
index 0000000..f7c75f8
--- /dev/null
+++ b/BlazorProject/BlazorProject/Components/ShowItems.razor
@@ -0,0 +1,11 @@
+@typeparam TItem
+
+
diff --git a/BlazorProject/BlazorProject/Components/ShowItems.razor.cs b/BlazorProject/BlazorProject/Components/ShowItems.razor.cs
new file mode 100644
index 0000000..4df7019
--- /dev/null
+++ b/BlazorProject/BlazorProject/Components/ShowItems.razor.cs
@@ -0,0 +1,15 @@
+using System;
+using Microsoft.AspNetCore.Components;
+
+namespace BlazorProject.Components
+{
+ public partial class ShowItems
+ {
+ [Parameter]
+ public List Items { get; set; }
+
+ [Parameter]
+ public RenderFragment ShowTemplate { get; set; }
+ }
+}
+
diff --git a/BlazorProject/BlazorProject/Components/TestRenderFragment.razor b/BlazorProject/BlazorProject/Components/TestRenderFragment.razor
new file mode 100644
index 0000000..176ee34
--- /dev/null
+++ b/BlazorProject/BlazorProject/Components/TestRenderFragment.razor
@@ -0,0 +1,8 @@
+
TestRenderFragment
+
+@code {
+ [Parameter]
+ public RenderFragment ChildContent { get; set; }
+}
+
+@ChildContent
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/Index.razor b/BlazorProject/BlazorProject/Pages/Index.razor
index 18698aa..ff50fe9 100644
--- a/BlazorProject/BlazorProject/Pages/Index.razor
+++ b/BlazorProject/BlazorProject/Pages/Index.razor
@@ -2,6 +2,19 @@
@using System.Globalization
@using BlazorProject.Components
+
+@code
+{
+ MyRootComponent MyRootComponent;
+}
+
+
+
+
MySecondChildComponent - Content
+
+
+
+
Index
Hello, world!
@@ -24,5 +37,30 @@ Welcome to your new app.
+
+
+
+
+
+ Cake Token Id - @CakeContext.Id
+
+
+
@CakeContext.Name
+
Price $@CakeContext.Cost
+
+
+
+
+
+
+
+
Content of my TestRenderFragment
+
+
+
+
+
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/Index.razor.cs b/BlazorProject/BlazorProject/Pages/Index.razor.cs
index 569ede8..7ce05ea 100644
--- a/BlazorProject/BlazorProject/Pages/Index.razor.cs
+++ b/BlazorProject/BlazorProject/Pages/Index.razor.cs
@@ -1,16 +1,59 @@
using System;
+using BlazorProject.Components;
using BlazorProject.Models;
+using BlazorProject.Services;
+using Microsoft.AspNetCore.Components;
namespace BlazorProject.Pages
{
public partial class Index
{
+
private Cake CakeItem = new Cake
{
Id = 1,
Name = "Black Forest",
Cost = 50
};
+
+ public List Cakes { get; set; }
+
+ [Inject]
+ public IDataService DataService { get; set; }
+
+ public List Items { get; set; } = new List();
+
+ private List Recipes { get; set; } = new List();
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ base.OnAfterRenderAsync(firstRender);
+
+ if (!firstRender)
+ {
+ return;
+ }
+
+ Items = await DataService.List(0, await DataService.Count());
+ Recipes = await DataService.GetRecipes();
+
+ StateHasChanged();
+ }
+
+ public void LoadCakes()
+ {
+ Cakes = new List
+ {
+ // items hidden for display purpose
+ new Cake
+ {
+ Id = 1,
+ Name = "Red Velvet",
+ Cost = 60
+ },
+ };
+ }
+
}
}
diff --git a/BlazorProject/BlazorProject/Pages/Pets1.razor b/BlazorProject/BlazorProject/Pages/Pets1.razor
new file mode 100644
index 0000000..bc3600d
--- /dev/null
+++ b/BlazorProject/BlazorProject/Pages/Pets1.razor
@@ -0,0 +1,29 @@
+@page "/pets1"
+
+
Pets
+
+
+
+
ID
+
Name
+
+
+
@pet.PetId
+
@pet.Name
+
+
+
+@code {
+ private List pets = new()
+{
+ new Pet { PetId = 2, Name = "Mr. Bigglesworth" },
+ new Pet { PetId = 4, Name = "Salem Saberhagen" },
+ new Pet { PetId = 7, Name = "K-9" }
+ };
+
+ private class Pet
+ {
+ public int PetId { get; set; }
+ public string? Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/Pets2.razor b/BlazorProject/BlazorProject/Pages/Pets2.razor
new file mode 100644
index 0000000..2cd9155
--- /dev/null
+++ b/BlazorProject/BlazorProject/Pages/Pets2.razor
@@ -0,0 +1,29 @@
+@page "/pets2"
+
+
Pets
+
+
+
+
ID
+
Name
+
+
+
@pet.PetId
+
@pet.Name
+
+
+
+@code {
+ private List pets = new()
+{
+ new Pet { PetId = 2, Name = "Mr. Bigglesworth" },
+ new Pet { PetId = 4, Name = "Salem Saberhagen" },
+ new Pet { PetId = 7, Name = "K-9" }
+ };
+
+ private class Pet
+ {
+ public int PetId { get; set; }
+ public string? Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/Pets3.razor b/BlazorProject/BlazorProject/Pages/Pets3.razor
new file mode 100644
index 0000000..b15a61f
--- /dev/null
+++ b/BlazorProject/BlazorProject/Pages/Pets3.razor
@@ -0,0 +1,29 @@
+@page "/pets3"
+
+
Pets
+
+
+
+
ID
+
Name
+
+
+
@context.PetId
+
@context.Name
+
+
+
+@code {
+ private List pets = new()
+{
+ new Pet { PetId = 2, Name = "Mr. Bigglesworth" },
+ new Pet { PetId = 4, Name = "Salem Saberhagen" },
+ new Pet { PetId = 7, Name = "K-9" }
+ };
+
+ private class Pet
+ {
+ public int PetId { get; set; }
+ public string? Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/Pets4.razor b/BlazorProject/BlazorProject/Pages/Pets4.razor
new file mode 100644
index 0000000..ba32af9
--- /dev/null
+++ b/BlazorProject/BlazorProject/Pages/Pets4.razor
@@ -0,0 +1,29 @@
+@page "/pets4"
+
+
Pets
+
+
+
+
ID
+
Name
+
+
+
@context.PetId
+
@context.Name
+
+
+
+@code {
+ private List pets = new()
+{
+ new Pet { PetId = 2, Name = "Mr. Bigglesworth" },
+ new Pet { PetId = 4, Name = "Salem Saberhagen" },
+ new Pet { PetId = 7, Name = "K-9" }
+ };
+
+ private class Pet
+ {
+ public int PetId { get; set; }
+ public string? Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/BlazorProject/BlazorProject/Pages/_Layout.cshtml b/BlazorProject/BlazorProject/Pages/_Layout.cshtml
index fb7d896..381fc94 100644
--- a/BlazorProject/BlazorProject/Pages/_Layout.cshtml
+++ b/BlazorProject/BlazorProject/Pages/_Layout.cshtml
@@ -36,5 +36,6 @@