From b780cc197d155acf3ed8977d05bba84e8c8f8bc2 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 12 Oct 2021 13:16:42 -0500 Subject: [PATCH 1/8] Blazor snippet sample NRT updates --- aspnetcore/blazor/forms-validation.md | 2 +- aspnetcore/blazor/fundamentals/routing.md | 7 ++++++- .../Pages/build-a-blazor-app/Todo1.razor | 2 +- .../Pages/build-a-blazor-app/Todo5.razor | 6 ------ .../Pages/build-a-blazor-app/Todo6.razor | 2 +- .../call-js-from-dotnet/CallJsExample2.razor | 2 +- .../Pages/file-uploads/FileUpload2.razor | 2 +- .../forms-and-validation/FormExample4.razor | 15 +++++++++------ .../forms-and-validation/FormExample5.razor | 6 +++--- .../Pages/index/People.razor | 2 +- .../Pages/index/ReferenceParent2.razor | 6 +++--- .../Pages/routing/Navigate.razor | 2 +- .../Shared/index/Expander.razor | 2 +- .../Shared/routing/NavMenu.razor | 2 +- .../BlazorSample_Server/routing/Program.cs | 4 ---- .../Pages/build-a-blazor-app/Todo1.razor | 2 +- .../Pages/build-a-blazor-app/Todo5.razor | 6 ------ .../Pages/build-a-blazor-app/Todo6.razor | 2 +- .../call-js-from-dotnet/CallJsExample2.razor | 2 +- .../Pages/call-web-api/CallWebAPI.razor | 19 +++++++++++++------ .../Pages/file-uploads/FileUpload2.razor | 2 +- .../forms-and-validation/FormExample4.razor | 15 +++++++++------ .../forms-and-validation/FormExample5.razor | 6 +++--- .../Pages/index/People.razor | 2 +- .../Pages/index/ReferenceParent2.razor | 6 +++--- .../Pages/routing/Navigate.razor | 2 +- .../Shared/index/Expander.razor | 2 +- .../Shared/routing/NavMenu.razor | 2 +- aspnetcore/tutorials/build-a-blazor-app.md | 18 ++++++++++++++++-- 29 files changed, 82 insertions(+), 66 deletions(-) delete mode 100644 aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo5.razor delete mode 100644 aspnetcore/blazor/samples/6.0/BlazorSample_Server/routing/Program.cs delete mode 100644 aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor diff --git a/aspnetcore/blazor/forms-validation.md b/aspnetcore/blazor/forms-validation.md index 873d0099be63..1a4473ec5b36 100644 --- a/aspnetcore/blazor/forms-validation.md +++ b/aspnetcore/blazor/forms-validation.md @@ -299,7 +299,7 @@ In the following `FormExample4` component, the `HandleValidationRequested` handl `Pages/FormExample4.razor`: -[!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor?highlight=38,42-53,70)] +[!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor?highlight=38,42-52,72)] ## Data Annotations Validator component and custom validation diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md index 2a181a0fbe93..de1aac2eee65 100644 --- a/aspnetcore/blazor/fundamentals/routing.md +++ b/aspnetcore/blazor/fundamentals/routing.md @@ -643,7 +643,12 @@ The following HTML markup is rendered: Blazor Server is integrated into [ASP.NET Core Endpoint Routing](xref:fundamentals/routing). An ASP.NET Core app is configured to accept incoming connections for interactive components with in `Program.cs`: -[!code-csharp[](~/blazor/samples/6.0/BlazorSample_Server/routing/Program.cs)] +```csharp +app.UseRouting(); + +app.MapBlazorHub(); +app.MapFallbackToPage("/_Host"); +``` The typical configuration is to route all requests to a Razor page, which acts as the host for the server-side part of the Blazor Server app. By convention, the *host* page is usually named `_Host.cshtml` in the `Pages` folder of the app. diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor index 58c16d92385f..c7e8bb18fdfc 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor @@ -17,7 +17,7 @@ @code { private List todos = new(); - private string newTodo; + private string? newTodo = null; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo5.razor deleted file mode 100644 index e6327262198d..000000000000 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo5.razor +++ /dev/null @@ -1,6 +0,0 @@ -@code { - private List todos = new(); - private string newTodo; - - // ... code continues ... -} diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor index 09af4208117f..704da7ef881f 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor @@ -14,7 +14,7 @@ @code { private List todos = new(); - private string newTodo; + private string? newTodo = null; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample2.razor index 96f0f1c15066..853ac73d5797 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample2.razor @@ -14,7 +14,7 @@ @code { private Random r = new(); - private string stockSymbol; + private string? stockSymbol; private decimal price; private async Task SetStock() diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor index 95910bd191e9..8f4c5ddd46e7 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor @@ -146,6 +146,6 @@ private class File { - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor index 405571349da9..b0768b10f679 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor @@ -28,9 +28,9 @@ @code { - private EditContext editContext; + private EditContext? editContext; private Holodeck holodeck = new(); - private ValidationMessageStore messageStore; + private ValidationMessageStore? messageStore; protected override void OnInitialized() { @@ -39,15 +39,15 @@ messageStore = new(editContext); } - private void HandleValidationRequested(object sender, + private void HandleValidationRequested(object? sender, ValidationRequestedEventArgs args) { - messageStore.Clear(); + messageStore?.Clear(); // Custom validation logic if (!holodeck.Options) { - messageStore.Add(() => holodeck.Options, "Select at least one."); + messageStore?.Add(() => holodeck.Options, "Select at least one."); } } @@ -67,6 +67,9 @@ public void Dispose() { - editContext.OnValidationRequested -= HandleValidationRequested; + if (editContext is not null) + { + editContext.OnValidationRequested -= HandleValidationRequested; + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample5.razor index af3eebaa37a4..e0137b48786a 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample5.razor @@ -38,12 +38,12 @@ @code { - private CustomValidation customValidation; + private CustomValidation? customValidation; private Starship starship = new() { ProductionDate = DateTime.UtcNow }; private void HandleValidSubmit() { - customValidation.ClearErrors(); + customValidation?.ClearErrors(); var errors = new Dictionary>(); @@ -57,7 +57,7 @@ if (errors.Any()) { - customValidation.DisplayErrors(errors); + customValidation?.DisplayErrors(errors); } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/People.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/People.razor index 445c7eaf1a69..2f97244a1db7 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/People.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/People.razor @@ -41,6 +41,6 @@ public class Person { - public string Data { get; set; } + public string? Data { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor index 870d04cadc63..c9bac9ed0780 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor @@ -7,8 +7,8 @@ @code { - private ReferenceChild childComponent; - private Action callChildMethod; + private ReferenceChild? childComponent; + private Action callChildMethod = new(() => {}); protected override void OnAfterRender(bool firstRender) { @@ -20,6 +20,6 @@ private void CallChildMethod() { - childComponent.ChildMethod(5); + childComponent?.ChildMethod(5); } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/routing/Navigate.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/routing/Navigate.razor index c1022fbd793d..8e09cb96a578 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/routing/Navigate.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/routing/Navigate.razor @@ -21,7 +21,7 @@ NavigationManager.LocationChanged += HandleLocationChanged; } - private void HandleLocationChanged(object sender, LocationChangedEventArgs e) + private void HandleLocationChanged(object? sender, LocationChangedEventArgs e) { Logger.LogInformation("URL of new location: {Location}", e.Location); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/index/Expander.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/index/Expander.razor index 5384ebc3ea6f..b1509b1dbfb3 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/index/Expander.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/index/Expander.razor @@ -16,7 +16,7 @@ public bool Expanded { get; set; } [Parameter] - public RenderFragment ChildContent { get; set; } + public RenderFragment? ChildContent { get; set; } protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor index 2c53de458ab6..4860ad0c554d 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor @@ -14,6 +14,6 @@ @code { - private string NavMenuCssClass; + private string? NavMenuCssClass = string.Empty; private void ToggleNavMenu() {} } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/routing/Program.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/routing/Program.cs deleted file mode 100644 index 80ea9be3e81b..000000000000 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/routing/Program.cs +++ /dev/null @@ -1,4 +0,0 @@ -app.UseRouting(); - -app.MapBlazorHub(); -app.MapFallbackToPage("/_Host"); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo1.razor index d54aa1b97f53..1c2b26700a86 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo1.razor @@ -19,7 +19,7 @@ @code { private List todos = new(); - private string newTodo; + private string? newTodo; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor deleted file mode 100644 index e6327262198d..000000000000 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor +++ /dev/null @@ -1,6 +0,0 @@ -@code { - private List todos = new(); - private string newTodo; - - // ... code continues ... -} diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo6.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo6.razor index 9fd9ca9a016d..897cfcc73811 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo6.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo6.razor @@ -16,7 +16,7 @@ @code { private List todos = new(); - private string newTodo; + private string? newTodo; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample2.razor index 96f0f1c15066..853ac73d5797 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample2.razor @@ -14,7 +14,7 @@ @code { private Random r = new(); - private string stockSymbol; + private string? stockSymbol; private decimal price; private async Task SetStock() diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor index 19fb1a64e582..2cb86b7886b0 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor @@ -72,10 +72,10 @@ else @code { private const string ServiceEndpoint = "https://localhost:10000/api/TodoItems"; - private TodoItem[] todoItems; + private TodoItem[]? todoItems; private TodoItem editItem = new(); private string editRowStyle = "none"; - private string newItemName; + private string? newItemName; protected override async Task OnInitializedAsync() => await GetTodoItems(); @@ -84,8 +84,11 @@ else private void EditItem(long id) { - editItem = todoItems.Single(i => i.Id == id); - editRowStyle = "table-row"; + if (todoItems is not null) + { + editItem = todoItems.Single(i => i.Id == id); + editRowStyle = "table-row"; + } } private async Task AddItem() @@ -99,7 +102,11 @@ else private async Task SaveItem() { - await Http.PutAsJsonAsync($"{ServiceEndpoint}/{editItem.Id}", editItem); + if (editItem is not null) + { + await Http.PutAsJsonAsync($"{ServiceEndpoint}/{editItem.Id}", + editItem); + } await GetTodoItems(); editRowStyle = "none"; } @@ -114,7 +121,7 @@ else private class TodoItem { public long Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public bool IsComplete { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor index 53c668f1f68d..847cf06d7e48 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor @@ -130,6 +130,6 @@ private class File { - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor index 405571349da9..dbeeb3ff0d55 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor @@ -28,9 +28,9 @@ @code { - private EditContext editContext; + private EditContext? editContext; private Holodeck holodeck = new(); - private ValidationMessageStore messageStore; + private ValidationMessageStore? messageStore; protected override void OnInitialized() { @@ -39,15 +39,15 @@ messageStore = new(editContext); } - private void HandleValidationRequested(object sender, + private void HandleValidationRequested(object? sender, ValidationRequestedEventArgs args) { - messageStore.Clear(); + messageStore?.Clear(); // Custom validation logic if (!holodeck.Options) { - messageStore.Add(() => holodeck.Options, "Select at least one."); + messageStore?.Add(() => holodeck.Options, "Select at least one."); } } @@ -67,6 +67,9 @@ public void Dispose() { - editContext.OnValidationRequested -= HandleValidationRequested; + if (editContext is not null) + { + editContext.OnValidationRequested -= HandleValidationRequested; + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample5.razor index af3eebaa37a4..e0137b48786a 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample5.razor @@ -38,12 +38,12 @@ @code { - private CustomValidation customValidation; + private CustomValidation? customValidation; private Starship starship = new() { ProductionDate = DateTime.UtcNow }; private void HandleValidSubmit() { - customValidation.ClearErrors(); + customValidation?.ClearErrors(); var errors = new Dictionary>(); @@ -57,7 +57,7 @@ if (errors.Any()) { - customValidation.DisplayErrors(errors); + customValidation?.DisplayErrors(errors); } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/People.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/People.razor index 445c7eaf1a69..2f97244a1db7 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/People.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/People.razor @@ -41,6 +41,6 @@ public class Person { - public string Data { get; set; } + public string? Data { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor index 870d04cadc63..c9bac9ed0780 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor @@ -7,8 +7,8 @@ @code { - private ReferenceChild childComponent; - private Action callChildMethod; + private ReferenceChild? childComponent; + private Action callChildMethod = new(() => {}); protected override void OnAfterRender(bool firstRender) { @@ -20,6 +20,6 @@ private void CallChildMethod() { - childComponent.ChildMethod(5); + childComponent?.ChildMethod(5); } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/routing/Navigate.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/routing/Navigate.razor index c1022fbd793d..8e09cb96a578 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/routing/Navigate.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/routing/Navigate.razor @@ -21,7 +21,7 @@ NavigationManager.LocationChanged += HandleLocationChanged; } - private void HandleLocationChanged(object sender, LocationChangedEventArgs e) + private void HandleLocationChanged(object? sender, LocationChangedEventArgs e) { Logger.LogInformation("URL of new location: {Location}", e.Location); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/index/Expander.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/index/Expander.razor index 5384ebc3ea6f..b1509b1dbfb3 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/index/Expander.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/index/Expander.razor @@ -16,7 +16,7 @@ public bool Expanded { get; set; } [Parameter] - public RenderFragment ChildContent { get; set; } + public RenderFragment? ChildContent { get; set; } protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor index 2c53de458ab6..4860ad0c554d 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor @@ -14,6 +14,6 @@ @code { - private string NavMenuCssClass; + private string? NavMenuCssClass = string.Empty; private void ToggleNavMenu() {} } diff --git a/aspnetcore/tutorials/build-a-blazor-app.md b/aspnetcore/tutorials/build-a-blazor-app.md index a29fc1ebdeff..c97c6e211e45 100644 --- a/aspnetcore/tutorials/build-a-blazor-app.md +++ b/aspnetcore/tutorials/build-a-blazor-app.md @@ -301,7 +301,14 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - [!code-razor[](~/blazor/samples/5.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor?highlight=3)] + ```razor + @code { + private List todos = new(); + private string? newTodo; + + // ... code continues ... + } + ``` Modify the text `` element to bind `newTodo` with the `@bind` attribute: @@ -476,7 +483,14 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - [!code-razor[](~/blazor/samples/3.1/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor?highlight=3)] + ```razor + @code { + private List todos = new(); + private string? newTodo; + + // ... code continues ... + } + ``` Modify the text `` element to bind `newTodo` with the `@bind` attribute: From 91ee453984aa9d7f005586ef31e0d70367c8c3b8 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Tue, 12 Oct 2021 13:21:06 -0500 Subject: [PATCH 2/8] Updates --- aspnetcore/tutorials/build-a-blazor-app.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aspnetcore/tutorials/build-a-blazor-app.md b/aspnetcore/tutorials/build-a-blazor-app.md index c97c6e211e45..152f1c73939d 100644 --- a/aspnetcore/tutorials/build-a-blazor-app.md +++ b/aspnetcore/tutorials/build-a-blazor-app.md @@ -126,7 +126,13 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - [!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/build-a-blazor-app/Todo5.razor?highlight=3)] + ```razor + @code { + private List todos = new(); + private string? newTodo; + + // ... code continues ... + } Modify the text `` element to bind `newTodo` with the `@bind` attribute: From be5623b9361be2e7b34429d8fb95f530e64dd99b Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Wed, 13 Oct 2021 08:44:17 -0500 Subject: [PATCH 3/8] Updates --- .../call-javascript-from-dotnet.md | 2 +- .../call-js-from-dotnet/CallJsExample5.razor | 21 +++++++++++-------- .../Pages/file-uploads/FileUpload2.razor | 12 ++++++----- .../forms-and-validation/FormExample3.razor | 5 +++-- .../Pages/index/RazorTemplate.razor | 2 +- .../Pages/index/ReferenceParent1.razor | 4 ++-- .../Pages/index/ReferenceParent2.razor | 4 ++-- .../Pages/index/ReferenceParent3.razor | 4 ++-- .../Pages/index/RouteParameter.razor | 2 +- .../Pages/templated-components/Pets1.razor | 2 +- .../6.0/BlazorSample_Server/UploadResult.cs | 4 ++-- .../call-js-from-dotnet/CallJsExample5.razor | 21 +++++++++++-------- .../Pages/call-web-api/CallWebAPI.razor | 14 ++++++------- .../Pages/file-uploads/FileUpload2.razor | 12 ++++++----- .../forms-and-validation/FormExample3.razor | 5 +++-- .../Pages/index/RazorTemplate.razor | 2 +- .../Pages/index/ReferenceParent1.razor | 4 ++-- .../Pages/index/ReferenceParent2.razor | 4 ++-- .../Pages/index/ReferenceParent3.razor | 4 ++-- .../Pages/index/RouteParameter.razor | 2 +- .../Pages/templated-components/Pets1.razor | 2 +- .../BlazorSample_WebAssembly/UploadResult.cs | 4 ++-- aspnetcore/tutorials/build-a-blazor-app.md | 18 ++++++++-------- 23 files changed, 83 insertions(+), 71 deletions(-) diff --git a/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md b/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md index 4abe6430d946..2858ff15b69f 100644 --- a/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md +++ b/aspnetcore/blazor/javascript-interoperability/call-javascript-from-dotnet.md @@ -131,7 +131,7 @@ Inside the closing `` tag of `wwwroot/index.html` (Blazor WebAssembly) or `Pages/CallJsExample5.razor`: -[!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor?highlight=2-3,25,30,38-40,43)] +[!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor?highlight=2-3,25,30,40-42,46)] ## Dynamic content generation scenarios diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor index 71bcb3732a8d..16fe32d4add5 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor @@ -20,10 +20,10 @@ @code { private Random r = new(); - private string stockSymbol; + private string? stockSymbol; private decimal price; - private JsInteropClasses2 jsClass; - private string result; + private JsInteropClasses2? jsClass; + private string? result; protected override void OnInitialized() { @@ -32,12 +32,15 @@ private async Task SetStock() { - stockSymbol = - $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; - price = r.Next(1, 101); - var interopResult = await jsClass.TickerChanged(stockSymbol, price); - result = $"Result of TickerChanged call for {stockSymbol} at " + - $"{price.ToString("c")}: {interopResult}"; + if (jsClass is not null) + { + stockSymbol = + $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; + price = r.Next(1, 101); + var interopResult = await jsClass.TickerChanged(stockSymbol, price); + result = $"Result of TickerChanged call for {stockSymbol} at " + + $"{price.ToString("c")}: {interopResult}"; + } } public void Dispose() => jsClass?.Dispose(); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor index 8f4c5ddd46e7..0e1c103601e5 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor @@ -122,7 +122,10 @@ var newUploadResults = await JsonSerializer .DeserializeAsync>(responseStream, options); - uploadResults = uploadResults.Concat(newUploadResults).ToList(); + if (newUploadResults is not null) + { + uploadResults = uploadResults.Concat(newUploadResults).ToList(); + } } } @@ -130,14 +133,13 @@ } private static bool FileUpload(IList uploadResults, - string fileName, ILogger logger, out UploadResult result) + string? fileName, ILogger logger, out UploadResult result) { - result = uploadResults.SingleOrDefault(f => f.FileName == fileName); + result = uploadResults.SingleOrDefault(f => f.FileName == fileName) ?? new(); - if (result is null) + if (!result.Uploaded) { logger.LogInformation("{FileName} not uploaded (Err: 5)", fileName); - result = new(); result.ErrorCode = 5; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor index daea938bb29d..be00c18355d1 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor @@ -32,7 +32,7 @@ IsValidatedDesign = true, ProductionDate = new DateTime(2245, 4, 11) }; - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { @@ -41,12 +41,13 @@ private async Task HandleSubmit() { - if (editContext.Validate()) + if (editContext != null && editContext.Validate()) { Logger.LogInformation("HandleSubmit called: Form is valid"); // Process the valid form // await ... + await Task.CompletedTask; } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RazorTemplate.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RazorTemplate.razor index 04e7ed47ab9d..92972538c496 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RazorTemplate.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RazorTemplate.razor @@ -10,6 +10,6 @@ private class Pet { - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent1.razor index 6d9d39fb2555..d2bdf13898e4 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent1.razor @@ -1,11 +1,11 @@ @page "/reference-parent-1" - @code { - private ReferenceChild childComponent; + private ReferenceChild? childComponent; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor index c9bac9ed0780..ab3ae005e71f 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent2.razor @@ -1,6 +1,6 @@ @page "/reference-parent-2" - @@ -8,7 +8,7 @@ @code { private ReferenceChild? childComponent; - private Action callChildMethod = new(() => {}); + private Action? callChildMethod; protected override void OnAfterRender(bool firstRender) { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent3.razor index ebf7765ede3e..997041189490 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/ReferenceParent3.razor @@ -8,7 +8,7 @@
  • -
  • @@ -18,7 +18,7 @@ @code { private Random r = new(); private List components = new(); - private Action callChildMethod; + private Action? callChildMethod; private ReferenceChild childComponent { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RouteParameter.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RouteParameter.razor index 26227b97dac6..72e7bd26fe1b 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RouteParameter.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/index/RouteParameter.razor @@ -4,7 +4,7 @@ @code { [Parameter] - public string Text { get; set; } + public string? Text { get; set; } protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/templated-components/Pets1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/templated-components/Pets1.razor index 296697b01ac2..8db776c5a105 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/templated-components/Pets1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/templated-components/Pets1.razor @@ -24,6 +24,6 @@ private class Pet { public int PetId { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/UploadResult.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/UploadResult.cs index 3ae08d36b082..441f5020df9c 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/UploadResult.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/UploadResult.cs @@ -1,7 +1,7 @@ public class UploadResult { public bool Uploaded { get; set; } - public string FileName { get; set; } - public string StoredFileName { get; set; } + public string? FileName { get; set; } + public string? StoredFileName { get; set; } public int ErrorCode { get; set; } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor index 71bcb3732a8d..16fe32d4add5 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor @@ -20,10 +20,10 @@ @code { private Random r = new(); - private string stockSymbol; + private string? stockSymbol; private decimal price; - private JsInteropClasses2 jsClass; - private string result; + private JsInteropClasses2? jsClass; + private string? result; protected override void OnInitialized() { @@ -32,12 +32,15 @@ private async Task SetStock() { - stockSymbol = - $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; - price = r.Next(1, 101); - var interopResult = await jsClass.TickerChanged(stockSymbol, price); - result = $"Result of TickerChanged call for {stockSymbol} at " + - $"{price.ToString("c")}: {interopResult}"; + if (jsClass is not null) + { + stockSymbol = + $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; + price = r.Next(1, 101); + var interopResult = await jsClass.TickerChanged(stockSymbol, price); + result = $"Result of TickerChanged call for {stockSymbol} at " + + $"{price.ToString("c")}: {interopResult}"; + } } public void Dispose() => jsClass?.Dispose(); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor index 2cb86b7886b0..16dae280f12b 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/CallWebAPI.razor @@ -84,11 +84,11 @@ else private void EditItem(long id) { - if (todoItems is not null) - { + if (todoItems is not null) + { editItem = todoItems.Single(i => i.Id == id); editRowStyle = "table-row"; - } + } } private async Task AddItem() @@ -102,11 +102,11 @@ else private async Task SaveItem() { - if (editItem is not null) - { + if (editItem is not null) + { await Http.PutAsJsonAsync($"{ServiceEndpoint}/{editItem.Id}", - editItem); - } + editItem); + } await GetTodoItems(); editRowStyle = "none"; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor index 847cf06d7e48..0cdb95b893f6 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor @@ -107,21 +107,23 @@ var newUploadResults = await response.Content .ReadFromJsonAsync>(); - uploadResults = uploadResults.Concat(newUploadResults).ToList(); + if (newUploadResults is not null) + { + uploadResults = uploadResults.Concat(newUploadResults).ToList(); + } } shouldRender = true; } private static bool FileUpload(IList uploadResults, - string fileName, ILogger logger, out UploadResult result) + string? fileName, ILogger logger, out UploadResult result) { - result = uploadResults.SingleOrDefault(f => f.FileName == fileName); + result = uploadResults.SingleOrDefault(f => f.FileName == fileName) ?? new(); - if (result is null) + if (!result.Uploaded) { logger.LogInformation("{FileName} not uploaded (Err: 5)", fileName); - result = new(); result.ErrorCode = 5; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor index daea938bb29d..be00c18355d1 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor @@ -32,7 +32,7 @@ IsValidatedDesign = true, ProductionDate = new DateTime(2245, 4, 11) }; - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { @@ -41,12 +41,13 @@ private async Task HandleSubmit() { - if (editContext.Validate()) + if (editContext != null && editContext.Validate()) { Logger.LogInformation("HandleSubmit called: Form is valid"); // Process the valid form // await ... + await Task.CompletedTask; } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RazorTemplate.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RazorTemplate.razor index 04e7ed47ab9d..92972538c496 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RazorTemplate.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RazorTemplate.razor @@ -10,6 +10,6 @@ private class Pet { - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent1.razor index 6d9d39fb2555..d2bdf13898e4 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent1.razor @@ -1,11 +1,11 @@ @page "/reference-parent-1" - @code { - private ReferenceChild childComponent; + private ReferenceChild? childComponent; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor index c9bac9ed0780..ab3ae005e71f 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent2.razor @@ -1,6 +1,6 @@ @page "/reference-parent-2" - @@ -8,7 +8,7 @@ @code { private ReferenceChild? childComponent; - private Action callChildMethod = new(() => {}); + private Action? callChildMethod; protected override void OnAfterRender(bool firstRender) { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent3.razor index ebf7765ede3e..997041189490 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/ReferenceParent3.razor @@ -8,7 +8,7 @@
  • -
  • @@ -18,7 +18,7 @@ @code { private Random r = new(); private List components = new(); - private Action callChildMethod; + private Action? callChildMethod; private ReferenceChild childComponent { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RouteParameter.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RouteParameter.razor index 26227b97dac6..72e7bd26fe1b 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RouteParameter.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/index/RouteParameter.razor @@ -4,7 +4,7 @@ @code { [Parameter] - public string Text { get; set; } + public string? Text { get; set; } protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/templated-components/Pets1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/templated-components/Pets1.razor index 296697b01ac2..8db776c5a105 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/templated-components/Pets1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/templated-components/Pets1.razor @@ -24,6 +24,6 @@ private class Pet { public int PetId { get; set; } - public string Name { get; set; } + public string? Name { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/UploadResult.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/UploadResult.cs index 3ae08d36b082..441f5020df9c 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/UploadResult.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/UploadResult.cs @@ -1,7 +1,7 @@ public class UploadResult { public bool Uploaded { get; set; } - public string FileName { get; set; } - public string StoredFileName { get; set; } + public string? FileName { get; set; } + public string? StoredFileName { get; set; } public int ErrorCode { get; set; } } diff --git a/aspnetcore/tutorials/build-a-blazor-app.md b/aspnetcore/tutorials/build-a-blazor-app.md index 152f1c73939d..2b7bc171c543 100644 --- a/aspnetcore/tutorials/build-a-blazor-app.md +++ b/aspnetcore/tutorials/build-a-blazor-app.md @@ -128,10 +128,10 @@ cd TodoList ```razor @code { - private List todos = new(); - private string? newTodo; + private List todos = new(); + private string? newTodo; - // ... code continues ... + // ... code continues ... } Modify the text `` element to bind `newTodo` with the `@bind` attribute: @@ -309,10 +309,10 @@ cd TodoList ```razor @code { - private List todos = new(); - private string? newTodo; + private List todos = new(); + private string? newTodo; - // ... code continues ... + // ... code continues ... } ``` @@ -491,10 +491,10 @@ cd TodoList ```razor @code { - private List todos = new(); - private string? newTodo; + private List todos = new(); + private string? newTodo; - // ... code continues ... + // ... code continues ... } ``` From ad6c723ad3eabdfbfb3e7248e0d8245951dc9e2e Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Wed, 13 Oct 2021 09:06:03 -0500 Subject: [PATCH 4/8] Updates --- .../6.0/BlazorSample_WebAssembly/BlazorSample.csproj | 8 ++++---- .../BlazorServerDbContextExample.csproj | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/BlazorSample.csproj b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/BlazorSample.csproj index f9c605f6080c..418fab24b001 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/BlazorSample.csproj +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/BlazorSample.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/BlazorServerDbContextExample.csproj b/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/BlazorServerDbContextExample.csproj index a072dd6da67d..c960a4d53fa3 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/BlazorServerDbContextExample.csproj +++ b/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/BlazorServerDbContextExample.csproj @@ -7,7 +7,7 @@ - + From c2fb02582f8b5e72c44bc8240ecd1face0845361 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Wed, 13 Oct 2021 09:11:38 -0500 Subject: [PATCH 5/8] Updates --- .../BlazorServerSignalRApp/BlazorServerSignalRApp.csproj | 2 +- .../Client/BlazorWebAssemblySignalRApp.Client.csproj | 8 ++++---- .../Server/BlazorWebAssemblySignalRApp.Server.csproj | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorServerSignalRApp/BlazorServerSignalRApp.csproj b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorServerSignalRApp/BlazorServerSignalRApp.csproj index 9aff36f1fed6..ca3190bde877 100644 --- a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorServerSignalRApp/BlazorServerSignalRApp.csproj +++ b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorServerSignalRApp/BlazorServerSignalRApp.csproj @@ -7,7 +7,7 @@ - + diff --git a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Client/BlazorWebAssemblySignalRApp.Client.csproj b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Client/BlazorWebAssemblySignalRApp.Client.csproj index 8213b8f92497..52528f9a8926 100644 --- a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Client/BlazorWebAssemblySignalRApp.Client.csproj +++ b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Client/BlazorWebAssemblySignalRApp.Client.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Server/BlazorWebAssemblySignalRApp.Server.csproj b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Server/BlazorWebAssemblySignalRApp.Server.csproj index 9acf581b3d29..b4aa99650e0a 100644 --- a/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Server/BlazorWebAssemblySignalRApp.Server.csproj +++ b/aspnetcore/tutorials/signalr-blazor/samples/6.0/BlazorWebAssemblySignalRApp/Server/BlazorWebAssemblySignalRApp.Server.csproj @@ -7,7 +7,7 @@ - + From 50cd3cb2201d9a9e70ad92fab08d0f1ecac10a18 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Thu, 14 Oct 2021 05:34:16 -0500 Subject: [PATCH 6/8] Updates --- .../Pages/build-a-blazor-app/Todo1.razor | 4 ++- .../Pages/build-a-blazor-app/Todo2.razor | 2 ++ .../Pages/build-a-blazor-app/Todo3.razor | 2 ++ .../Pages/build-a-blazor-app/Todo6.razor | 2 +- .../event-handling/EventHandlerExample1.razor | 2 +- .../forms-and-validation/FormExample8.razor | 2 +- .../forms-and-validation/FormExample9.razor | 16 +++++++---- .../lifecycle/CounterWithTimerDisposal2.razor | 2 +- .../Pages/lifecycle/FetchData.razor | 2 +- .../Pages/lifecycle/OnInit.razor | 2 +- .../Pages/lifecycle/OnParamsSet.razor | 2 +- .../Pages/lifecycle/SetParamsAsync.razor | 2 +- .../Shared/data-binding/NestedChild.razor | 4 +-- .../data-binding/NestedGrandchild.razor | 2 +- .../Shared/data-binding/PasswordEntry.razor | 6 ++-- .../Shared/data-binding/PasswordEntry2.razor | 10 +++---- .../build-a-blazor-app/TodoItem.cs | 2 +- .../Pages/call-web-api/TodoRequest.razor | 4 +-- .../forms-and-validation/FormExample8.razor | 2 +- .../forms-and-validation/FormExample9.razor | 16 +++++++---- .../lifecycle/CounterWithTimerDisposal2.razor | 2 +- .../Pages/lifecycle/OnInit.razor | 2 +- .../Pages/lifecycle/OnParamsSet.razor | 2 +- .../Pages/lifecycle/SetParamsAsync.razor | 2 +- .../Shared/data-binding/NestedChild.razor | 4 +-- .../data-binding/NestedGrandchild.razor | 2 +- .../Shared/data-binding/PasswordEntry.razor | 6 ++-- .../Shared/data-binding/PasswordEntry2.razor | 10 +++---- .../build-a-blazor-app/TodoItem.cs | 2 +- aspnetcore/tutorials/build-a-blazor-app.md | 28 +++++-------------- 30 files changed, 75 insertions(+), 71 deletions(-) diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor index c7e8bb18fdfc..1c2b26700a86 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo1.razor @@ -1,5 +1,7 @@ @page "/todo" +Todo +

    Todo (@todos.Count(todo => !todo.IsDone))

      @@ -17,7 +19,7 @@ @code { private List todos = new(); - private string? newTodo = null; + private string? newTodo; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo2.razor index caf50ee96a4c..950780ab2032 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo2.razor @@ -1,5 +1,7 @@ @page "/todo" +Todo +

      Todo

        diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo3.razor index d536f8fa5a01..2fc5e7e44f3a 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo3.razor @@ -1,5 +1,7 @@ @page "/todo" +Todo +

        Todo

          diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor index 704da7ef881f..2b17ce8caa02 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/build-a-blazor-app/Todo6.razor @@ -14,7 +14,7 @@ @code { private List todos = new(); - private string? newTodo = null; + private string? newTodo; private void AddTodo() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/event-handling/EventHandlerExample1.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/event-handling/EventHandlerExample1.razor index 16edc1913d5e..cfde77dc14d4 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/event-handling/EventHandlerExample1.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/event-handling/EventHandlerExample1.razor @@ -21,7 +21,7 @@ @code { private string currentHeading = "Initial heading"; - private string newHeading; + private string? newHeading; private string checkedMessage = "Not changed yet"; private void UpdateHeading() diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample8.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample8.razor index befb542bad5c..1e989d4cf261 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample8.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample8.razor @@ -13,7 +13,7 @@ @code { private ExampleModel exampleModel = new(); - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample9.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample9.razor index 8daa73aba5e1..6414c04cafa8 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample9.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample9.razor @@ -28,7 +28,7 @@ ProductionDate = new DateTime(2245, 4, 11) }; private bool formInvalid = false; - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { @@ -36,10 +36,13 @@ editContext.OnFieldChanged += HandleFieldChanged; } - private void HandleFieldChanged(object sender, FieldChangedEventArgs e) + private void HandleFieldChanged(object? sender, FieldChangedEventArgs e) { - formInvalid = !editContext.Validate(); - StateHasChanged(); + if (editContext is not null) + { + formInvalid = !editContext.Validate(); + StateHasChanged(); + } } private void HandleValidSubmit() @@ -51,6 +54,9 @@ public void Dispose() { - editContext.OnFieldChanged -= HandleFieldChanged; + if (editContext is not null) + { + editContext.OnFieldChanged -= HandleFieldChanged; + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/CounterWithTimerDisposal2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/CounterWithTimerDisposal2.razor index a1669b2c6192..35957a0d0f48 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/CounterWithTimerDisposal2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/CounterWithTimerDisposal2.razor @@ -8,7 +8,7 @@ @code { private int currentCount = 0; - private Timer timer; + private Timer? timer; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/FetchData.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/FetchData.razor index d74763b5558b..5a18446fec27 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/FetchData.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/FetchData.razor @@ -18,7 +18,7 @@ else } @code { - private WeatherForecast[] forecasts; + private WeatherForecast[]? forecasts; protected override async Task OnInitializedAsync() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnInit.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnInit.razor index ae589655f0ec..581de8c39f53 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnInit.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnInit.razor @@ -3,7 +3,7 @@

          @message

          @code { - private string message; + private string? message; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnParamsSet.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnParamsSet.razor index fc8103143352..bf14a3d31585 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnParamsSet.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/OnParamsSet.razor @@ -4,7 +4,7 @@

          @message

          @code { - private string message; + private string? message; [Parameter] public DateTime StartDate { get; set; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/SetParamsAsync.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/SetParamsAsync.razor index 9f5004605012..e0cf6db469d4 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/SetParamsAsync.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/lifecycle/SetParamsAsync.razor @@ -6,7 +6,7 @@ private string message = "Not set"; [Parameter] - public string Param { get; set; } + public string? Param { get; set; } public override async Task SetParametersAsync(ParameterView parameters) { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedChild.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedChild.razor index 7b21483b596c..489aa56b3e68 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedChild.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedChild.razor @@ -12,14 +12,14 @@ @code { [Parameter] - public string ChildMessage { get; set; } + public string? ChildMessage { get; set; } [Parameter] public EventCallback ChildMessageChanged { get; set; } private string BoundValue { - get => ChildMessage; + get => ChildMessage ?? string.Empty; set => ChildMessageChanged.InvokeAsync(value); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedGrandchild.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedGrandchild.razor index 8d1aef3f3016..f4bde6089bef 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedGrandchild.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/NestedGrandchild.razor @@ -10,7 +10,7 @@ @code { [Parameter] - public string GrandchildMessage { get; set; } + public string? GrandchildMessage { get; set; } [Parameter] public EventCallback GrandchildMessageChanged { get; set; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry.razor index 9c079cfa223d..89c815126436 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry.razor @@ -18,17 +18,17 @@ @code { private bool showPassword; - private string password; + private string? password; [Parameter] - public string Password { get; set; } + public string? Password { get; set; } [Parameter] public EventCallback PasswordChanged { get; set; } private async Task OnPasswordChanged(ChangeEventArgs e) { - password = e.Value.ToString(); + password = e?.Value?.ToString(); await PasswordChanged.InvokeAsync(password); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry2.razor index 11416865cd08..a14580e288e7 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/data-binding/PasswordEntry2.razor @@ -19,20 +19,20 @@ @code { private bool showPassword; - private string password; - private string validationMessage; + private string? password; + private string? validationMessage; [Parameter] - public string Password { get; set; } + public string? Password { get; set; } [Parameter] public EventCallback PasswordChanged { get; set; } private Task OnPasswordChanged(ChangeEventArgs e) { - password = e.Value.ToString(); + password = e?.Value?.ToString(); - if (password.Contains(' ')) + if (password != null && password.Contains(' ')) { validationMessage = "Spaces not allowed!"; diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/build-a-blazor-app/TodoItem.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/build-a-blazor-app/TodoItem.cs index cc54395e540f..e9dbfbe2d415 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/build-a-blazor-app/TodoItem.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/build-a-blazor-app/TodoItem.cs @@ -1,5 +1,5 @@ public class TodoItem { - public string Title { get; set; } + public string? Title { get; set; } public bool IsDone { get; set; } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/TodoRequest.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/TodoRequest.razor index 6e2d392ead04..0c6c3e240853 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/TodoRequest.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-web-api/TodoRequest.razor @@ -15,7 +15,7 @@

          @responseBody

          @code { - private string responseBody; + private string? responseBody; private async Task PostRequest() { @@ -51,7 +51,7 @@ public class TodoItem { public long Id { get; set; } - public string Name { get; set; } + public string? Name { get; set; } public bool IsComplete { get; set; } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample8.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample8.razor index befb542bad5c..1e989d4cf261 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample8.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample8.razor @@ -13,7 +13,7 @@ @code { private ExampleModel exampleModel = new(); - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample9.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample9.razor index 8daa73aba5e1..6414c04cafa8 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample9.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample9.razor @@ -28,7 +28,7 @@ ProductionDate = new DateTime(2245, 4, 11) }; private bool formInvalid = false; - private EditContext editContext; + private EditContext? editContext; protected override void OnInitialized() { @@ -36,10 +36,13 @@ editContext.OnFieldChanged += HandleFieldChanged; } - private void HandleFieldChanged(object sender, FieldChangedEventArgs e) + private void HandleFieldChanged(object? sender, FieldChangedEventArgs e) { - formInvalid = !editContext.Validate(); - StateHasChanged(); + if (editContext is not null) + { + formInvalid = !editContext.Validate(); + StateHasChanged(); + } } private void HandleValidSubmit() @@ -51,6 +54,9 @@ public void Dispose() { - editContext.OnFieldChanged -= HandleFieldChanged; + if (editContext is not null) + { + editContext.OnFieldChanged -= HandleFieldChanged; + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/CounterWithTimerDisposal2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/CounterWithTimerDisposal2.razor index a1669b2c6192..35957a0d0f48 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/CounterWithTimerDisposal2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/CounterWithTimerDisposal2.razor @@ -8,7 +8,7 @@ @code { private int currentCount = 0; - private Timer timer; + private Timer? timer; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnInit.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnInit.razor index ae589655f0ec..581de8c39f53 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnInit.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnInit.razor @@ -3,7 +3,7 @@

          @message

          @code { - private string message; + private string? message; protected override void OnInitialized() { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnParamsSet.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnParamsSet.razor index fc8103143352..bf14a3d31585 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnParamsSet.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/OnParamsSet.razor @@ -4,7 +4,7 @@

          @message

          @code { - private string message; + private string? message; [Parameter] public DateTime StartDate { get; set; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/SetParamsAsync.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/SetParamsAsync.razor index 9f5004605012..e0cf6db469d4 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/SetParamsAsync.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/lifecycle/SetParamsAsync.razor @@ -6,7 +6,7 @@ private string message = "Not set"; [Parameter] - public string Param { get; set; } + public string? Param { get; set; } public override async Task SetParametersAsync(ParameterView parameters) { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedChild.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedChild.razor index 7b21483b596c..489aa56b3e68 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedChild.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedChild.razor @@ -12,14 +12,14 @@ @code { [Parameter] - public string ChildMessage { get; set; } + public string? ChildMessage { get; set; } [Parameter] public EventCallback ChildMessageChanged { get; set; } private string BoundValue { - get => ChildMessage; + get => ChildMessage ?? string.Empty; set => ChildMessageChanged.InvokeAsync(value); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedGrandchild.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedGrandchild.razor index 8d1aef3f3016..f4bde6089bef 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedGrandchild.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/NestedGrandchild.razor @@ -10,7 +10,7 @@ @code { [Parameter] - public string GrandchildMessage { get; set; } + public string? GrandchildMessage { get; set; } [Parameter] public EventCallback GrandchildMessageChanged { get; set; } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry.razor index 9c079cfa223d..89c815126436 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry.razor @@ -18,17 +18,17 @@ @code { private bool showPassword; - private string password; + private string? password; [Parameter] - public string Password { get; set; } + public string? Password { get; set; } [Parameter] public EventCallback PasswordChanged { get; set; } private async Task OnPasswordChanged(ChangeEventArgs e) { - password = e.Value.ToString(); + password = e?.Value?.ToString(); await PasswordChanged.InvokeAsync(password); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry2.razor index 11416865cd08..a14580e288e7 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/data-binding/PasswordEntry2.razor @@ -19,20 +19,20 @@ @code { private bool showPassword; - private string password; - private string validationMessage; + private string? password; + private string? validationMessage; [Parameter] - public string Password { get; set; } + public string? Password { get; set; } [Parameter] public EventCallback PasswordChanged { get; set; } private Task OnPasswordChanged(ChangeEventArgs e) { - password = e.Value.ToString(); + password = e?.Value?.ToString(); - if (password.Contains(' ')) + if (password != null && password.Contains(' ')) { validationMessage = "Spaces not allowed!"; diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/build-a-blazor-app/TodoItem.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/build-a-blazor-app/TodoItem.cs index cc54395e540f..e9dbfbe2d415 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/build-a-blazor-app/TodoItem.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/build-a-blazor-app/TodoItem.cs @@ -1,5 +1,5 @@ public class TodoItem { - public string Title { get; set; } + public string? Title { get; set; } public bool IsDone { get; set; } } diff --git a/aspnetcore/tutorials/build-a-blazor-app.md b/aspnetcore/tutorials/build-a-blazor-app.md index 2b7bc171c543..e4d8a7e1c75a 100644 --- a/aspnetcore/tutorials/build-a-blazor-app.md +++ b/aspnetcore/tutorials/build-a-blazor-app.md @@ -126,13 +126,9 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - ```razor - @code { - private List todos = new(); - private string? newTodo; - - // ... code continues ... - } + ```csharp + private string? newTodo; + ``` Modify the text `` element to bind `newTodo` with the `@bind` attribute: @@ -307,13 +303,8 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - ```razor - @code { - private List todos = new(); - private string? newTodo; - - // ... code continues ... - } + ```csharp + private string newTodo; ``` Modify the text `` element to bind `newTodo` with the `@bind` attribute: @@ -489,13 +480,8 @@ cd TodoList 1. To get the title of the new todo item, add a `newTodo` string field at the top of the `@code` block: - ```razor - @code { - private List todos = new(); - private string? newTodo; - - // ... code continues ... - } + ```csharp + private string newTodo; ``` Modify the text `` element to bind `newTodo` with the `@bind` attribute: From 30c7dcea635f3116a480a8df7f765493f5d2f113 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Thu, 14 Oct 2021 05:49:53 -0500 Subject: [PATCH 7/8] Updates --- .../blazor/samples/3.1/BlazorSample_WebAssembly/Program.cs | 2 +- .../blazor/samples/5.0/BlazorSample_WebAssembly/Program.cs | 2 +- .../Pages/call-js-from-dotnet/CallJsExample5.razor | 6 +++--- .../Pages/file-uploads/FileUpload2.razor | 4 ++-- .../Pages/forms-and-validation/FormExample3.razor | 2 +- .../Pages/forms-and-validation/FormExample4.razor | 6 +++--- .../blazor/samples/6.0/BlazorSample_Server/TimerService.cs | 4 ++-- .../Pages/call-js-from-dotnet/CallJsExample5.razor | 6 +++--- .../Pages/file-uploads/FileUpload2.razor | 4 ++-- .../Pages/forms-and-validation/FormExample3.razor | 2 +- .../Pages/forms-and-validation/FormExample4.razor | 6 +++--- .../samples/6.0/BlazorSample_WebAssembly/TimerService.cs | 4 ++-- .../BlazorServerDbContextExample/Program.cs | 2 +- 13 files changed, 25 insertions(+), 25 deletions(-) diff --git a/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Program.cs b/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Program.cs index 4a5791d68c62..fe5d2825a941 100644 --- a/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Program.cs +++ b/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Program.cs @@ -18,7 +18,7 @@ public static async Task Main(string[] args) builder.RootComponents.Add("app"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); - builder.Services.AddSingleton(); + builder.Services.AddSingleton(); await builder.Build().RunAsync(); } diff --git a/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Program.cs b/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Program.cs index 34c293bc259d..509f94362fc6 100644 --- a/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Program.cs +++ b/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Program.cs @@ -18,7 +18,7 @@ public static async Task Main(string[] args) builder.RootComponents.Add("#app"); builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); - builder.Services.AddSingleton(); + builder.Services.AddSingleton(); await builder.Build().RunAsync(); } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor index 16fe32d4add5..38a7c6309eaf 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/call-js-from-dotnet/CallJsExample5.razor @@ -32,15 +32,15 @@ private async Task SetStock() { - if (jsClass is not null) - { + if (jsClass is not null) + { stockSymbol = $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; price = r.Next(1, 101); var interopResult = await jsClass.TickerChanged(stockSymbol, price); result = $"Result of TickerChanged call for {stockSymbol} at " + $"{price.ToString("c")}: {interopResult}"; - } + } } public void Dispose() => jsClass?.Dispose(); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor index 0e1c103601e5..96720d24f780 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/file-uploads/FileUpload2.razor @@ -123,9 +123,9 @@ .DeserializeAsync>(responseStream, options); if (newUploadResults is not null) - { + { uploadResults = uploadResults.Concat(newUploadResults).ToList(); - } + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor index be00c18355d1..eeef6beac0de 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample3.razor @@ -47,7 +47,7 @@ // Process the valid form // await ... - await Task.CompletedTask; + await Task.CompletedTask; } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor index b0768b10f679..80d03879f89d 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Pages/forms-and-validation/FormExample4.razor @@ -67,9 +67,9 @@ public void Dispose() { - if (editContext is not null) - { + if (editContext is not null) + { editContext.OnValidationRequested -= HandleValidationRequested; - } + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/TimerService.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/TimerService.cs index 21e6ccbb970d..ced3a8a6cea9 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/TimerService.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/TimerService.cs @@ -9,7 +9,7 @@ public class TimerService : IDisposable private System.Timers.Timer timer; public TimerService(NotifierService notifier, - ILogger logger) + ILogger logger) { this.notifier = notifier; this.logger = logger; @@ -29,7 +29,7 @@ public void Start() } private async void HandleTimer(object source, - System.Timers.ElapsedEventArgs e) + System.Timers.ElapsedEventArgs e) { elapsedCount += 1; await notifier.Update("elapsedCount", elapsedCount); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor index 16fe32d4add5..38a7c6309eaf 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/call-js-from-dotnet/CallJsExample5.razor @@ -32,15 +32,15 @@ private async Task SetStock() { - if (jsClass is not null) - { + if (jsClass is not null) + { stockSymbol = $"{(char)('A' + r.Next(0, 26))}{(char)('A' + r.Next(0, 26))}"; price = r.Next(1, 101); var interopResult = await jsClass.TickerChanged(stockSymbol, price); result = $"Result of TickerChanged call for {stockSymbol} at " + $"{price.ToString("c")}: {interopResult}"; - } + } } public void Dispose() => jsClass?.Dispose(); diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor index 0cdb95b893f6..4d7f8e8e680e 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/file-uploads/FileUpload2.razor @@ -108,9 +108,9 @@ .ReadFromJsonAsync>(); if (newUploadResults is not null) - { + { uploadResults = uploadResults.Concat(newUploadResults).ToList(); - } + } } shouldRender = true; diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor index be00c18355d1..eeef6beac0de 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample3.razor @@ -47,7 +47,7 @@ // Process the valid form // await ... - await Task.CompletedTask; + await Task.CompletedTask; } else { diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor index dbeeb3ff0d55..80d03879f89d 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Pages/forms-and-validation/FormExample4.razor @@ -67,9 +67,9 @@ public void Dispose() { - if (editContext is not null) - { + if (editContext is not null) + { editContext.OnValidationRequested -= HandleValidationRequested; - } + } } } diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/TimerService.cs b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/TimerService.cs index 21e6ccbb970d..ced3a8a6cea9 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/TimerService.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/TimerService.cs @@ -9,7 +9,7 @@ public class TimerService : IDisposable private System.Timers.Timer timer; public TimerService(NotifierService notifier, - ILogger logger) + ILogger logger) { this.notifier = notifier; this.logger = logger; @@ -29,7 +29,7 @@ public void Start() } private async void HandleTimer(object source, - System.Timers.ElapsedEventArgs e) + System.Timers.ElapsedEventArgs e) { elapsedCount += 1; await notifier.Update("elapsedCount", elapsedCount); diff --git a/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/Program.cs b/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/Program.cs index b7a6b0553d3a..f3f27a6b7b0d 100644 --- a/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/Program.cs +++ b/aspnetcore/blazor/samples/6.0/BlazorServerEFCoreSample/BlazorServerDbContextExample/Program.cs @@ -50,7 +50,7 @@ // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { - app.UseDeveloperExceptionPage(); + app.UseDeveloperExceptionPage(); } else { From 425a358e5e6b32419d7c0567cbcb36dc1aad3b71 Mon Sep 17 00:00:00 2001 From: guardrex <1622880+guardrex@users.noreply.github.com> Date: Thu, 14 Oct 2021 06:05:19 -0500 Subject: [PATCH 8/8] Updates --- aspnetcore/blazor/fundamentals/routing.md | 12 ------------ .../Shared/routing/NavMenu.razor | 19 ------------------- .../Shared/routing/NavMenu.razor | 19 ------------------- .../Shared/routing/NavMenu.razor | 19 ------------------- .../Shared/routing/NavMenu.razor | 19 ------------------- .../Shared/routing/NavMenu.razor | 19 ------------------- .../Shared/routing/NavMenu.razor | 19 ------------------- 7 files changed, 126 deletions(-) delete mode 100644 aspnetcore/blazor/samples/3.1/BlazorSample_Server/Shared/routing/NavMenu.razor delete mode 100644 aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor delete mode 100644 aspnetcore/blazor/samples/5.0/BlazorSample_Server/Shared/routing/NavMenu.razor delete mode 100644 aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor delete mode 100644 aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor delete mode 100644 aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor diff --git a/aspnetcore/blazor/fundamentals/routing.md b/aspnetcore/blazor/fundamentals/routing.md index de1aac2eee65..efaad02b4ffb 100644 --- a/aspnetcore/blazor/fundamentals/routing.md +++ b/aspnetcore/blazor/fundamentals/routing.md @@ -581,10 +581,6 @@ In the following `App` component example: Use a component in place of HTML hyperlink elements (``) when creating navigation links. A component behaves like an `` element, except it toggles an `active` CSS class based on whether its `href` matches the current URL. The `active` class helps a user understand which page is the active page among the navigation links displayed. Optionally, assign a CSS class name to to apply a custom CSS class to the rendered link when the current route matches the `href`. -The following `NavMenu` component creates a [`Bootstrap`](https://getbootstrap.com/docs/) navigation bar that demonstrates how to use components: - -[!code-razor[](~/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor?highlight=4,9)] - > [!NOTE] > The `NavMenu` component (`NavMenu.razor`) is provided in the `Shared` folder of an app generated from the [Blazor project templates](xref:blazor/project-structure). @@ -1013,10 +1009,6 @@ In the following `App` component example: Use a component in place of HTML hyperlink elements (``) when creating navigation links. A component behaves like an `` element, except it toggles an `active` CSS class based on whether its `href` matches the current URL. The `active` class helps a user understand which page is the active page among the navigation links displayed. Optionally, assign a CSS class name to to apply a custom CSS class to the rendered link when the current route matches the `href`. -The following `NavMenu` component creates a [`Bootstrap`](https://getbootstrap.com/docs/) navigation bar that demonstrates how to use components: - -[!code-razor[](~/blazor/samples/5.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor?highlight=4,9)] - > [!NOTE] > The `NavMenu` component (`NavMenu.razor`) is provided in the `Shared` folder of an app generated from the [Blazor project templates](xref:blazor/project-structure). @@ -1289,10 +1281,6 @@ To parse a query string's parameters, one approach is to use [`URLSearchParams`] Use a component in place of HTML hyperlink elements (``) when creating navigation links. A component behaves like an `` element, except it toggles an `active` CSS class based on whether its `href` matches the current URL. The `active` class helps a user understand which page is the active page among the navigation links displayed. Optionally, assign a CSS class name to to apply a custom CSS class to the rendered link when the current route matches the `href`. -The following `NavMenu` component creates a [`Bootstrap`](https://getbootstrap.com/docs/) navigation bar that demonstrates how to use components: - -[!code-razor[](~/blazor/samples/3.1/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor?highlight=4,9)] - > [!NOTE] > The `NavMenu` component (`NavMenu.razor`) is provided in the `Shared` folder of an app generated from the [Blazor project templates](xref:blazor/project-structure). diff --git a/aspnetcore/blazor/samples/3.1/BlazorSample_Server/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/3.1/BlazorSample_Server/Shared/routing/NavMenu.razor deleted file mode 100644 index 2c53de458ab6..000000000000 --- a/aspnetcore/blazor/samples/3.1/BlazorSample_Server/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string NavMenuCssClass; - private void ToggleNavMenu() {} -} diff --git a/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor deleted file mode 100644 index 2c53de458ab6..000000000000 --- a/aspnetcore/blazor/samples/3.1/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string NavMenuCssClass; - private void ToggleNavMenu() {} -} diff --git a/aspnetcore/blazor/samples/5.0/BlazorSample_Server/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/5.0/BlazorSample_Server/Shared/routing/NavMenu.razor deleted file mode 100644 index 2c53de458ab6..000000000000 --- a/aspnetcore/blazor/samples/5.0/BlazorSample_Server/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string NavMenuCssClass; - private void ToggleNavMenu() {} -} diff --git a/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor deleted file mode 100644 index 2c53de458ab6..000000000000 --- a/aspnetcore/blazor/samples/5.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string NavMenuCssClass; - private void ToggleNavMenu() {} -} diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor deleted file mode 100644 index 4860ad0c554d..000000000000 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_Server/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string? NavMenuCssClass = string.Empty; - private void ToggleNavMenu() {} -} diff --git a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor b/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor deleted file mode 100644 index 4860ad0c554d..000000000000 --- a/aspnetcore/blazor/samples/6.0/BlazorSample_WebAssembly/Shared/routing/NavMenu.razor +++ /dev/null @@ -1,19 +0,0 @@ -
          - -
          - -@code { - private string? NavMenuCssClass = string.Empty; - private void ToggleNavMenu() {} -}