Blazor
Create a page:
dotnet new razorcomponent -n Todo -o Pages
First TODO page:
public class TodoItem {
  public string? Title {get; set;}
  public bool IsDone {get; set;} = false;
}
@page "/todo"
<h3>Todo (@todos.Count(todo => !todo.IsDone))</h3>
<ul>
  @foreach (var todo in todos)
  {
    <li>
      <input type="checkbox" @bind="todo.IsDone" />
      <input @bind="todo.Title" />
    </li>
  }
</ul>
<input placeholder="something to do" @bind="newTodo" @bind:event="oninput" />
<button @onclick="AddItem">Add</button>
<p> todo is @newTodo </p>
@code {
  private List<TodoItem> todos = new();
  private string? newTodo;
  private void AddItem() {
    todos.Add(new TodoItem { Title = newTodo});
    newTodo = string.Empty;
  }
}
On parameter set:
@page "/counter/{startingValue}"
@code {
  private int currentCount = 0;
  [Parameter]
  private int startingValue { get; set; } = 0
  protected override void OnParametersSet()
  {
      currentCount = startingValue;
      base.OnParametersSet();
  }
}