Skip to content

Commit 9c1f966

Browse files
Merge pull request #34064 from dotnet/main
Merge to Live
2 parents 2ce335c + 525450c commit 9c1f966

30 files changed

+169
-152
lines changed

aspnetcore/blazor/blazor-ef-core.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ The recommended approach to create a new <xref:Microsoft.EntityFrameworkCore.DbC
175175
In the preceding factory:
176176

177177
* <xref:Microsoft.Extensions.DependencyInjection.ActivatorUtilities.CreateInstance%2A?displayProperty=nameWithType> satisfies any dependencies via the service provider.
178-
* `IDbContextFactory` is available in EF Core ASP.NET Core 5.0 or later, so the interface is [implemented in the sample app for ASP.NET Core 3.x](https://github.com/dotnet/blazor-samples/blob/main/3.1/BlazorServerEFCoreSample/Data/IDbContextFactory.cs).
178+
* <xref:Microsoft.EntityFrameworkCore.IDbContextFactory%601> is available in EF Core ASP.NET Core 5.0 or later, so the interface is [implemented in the sample app for ASP.NET Core 3.x](https://github.com/dotnet/blazor-samples/blob/main/3.1/BlazorServerEFCoreSample/Data/IDbContextFactory.cs).
179179

180180
:::moniker-end
181181

aspnetcore/blazor/call-web-api.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -222,13 +222,11 @@ For more information, see [Client-side services fail to resolve during prerender
222222

223223
When prerendering, components render twice: first statically, then interactively. State doesn't automatically flow from the prerendered component to the interactive one. If a component performs asynchronous initialization operations and renders different content for different states during initialization, such as a "Loading..." progress indicator, you may see a flicker when the component renders twice.
224224

225-
<!-- UPDATE 9.0 Keep an eye on the status of the enhanced nav fix
226-
currently scheduled for Pre4. Remove the cross-link
227-
to the PU issue when 9.0 releases.
228-
Note that the README of the "weather" call web API
229-
sample has a cross-link and remark on this, and the
230-
sample app disabled enhanced nav on the weather
231-
component link. -->
225+
<!-- UPDATE 10.0 The status of the enhanced nav fix is scheduled for .NET 10.
226+
Note that the README of the "weather" call web API
227+
sample has a cross-link and remark on this, and the
228+
sample app disabled enhanced nav on the weather
229+
component link. -->
232230

233231
You can address this by flowing prerendered state using the Persistent Component State API, which the `BlazorWebAppCallWebApi` and `BlazorWebAppCallWebApi_Weather` [sample apps](#sample-apps) demonstrate. When the component renders interactively, it can render the same way using the same state. However, the API doesn't currently work with enhanced navigation, which you can work around by disabling enhanced navigation on links to the page (`data-enhanced-nav=false`). For more information, see the following resources:
234232

aspnetcore/blazor/components/built-in-components.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,19 @@ The following built-in Razor components are provided by the Blazor framework. Fo
3737
* [`InputSelect`](xref:blazor/forms/input-components)
3838
* [`InputText`](xref:blazor/forms/input-components)
3939
* [`InputTextArea`](xref:blazor/forms/input-components)
40+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
4041
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
4142
* [`NavigationLock`](xref:blazor/fundamentals/routing#handleprevent-location-changes)
4243
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
4344
* [`PageTitle`](xref:blazor/components/control-head-content)
45+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
4446
* [`Paginator`](xref:blazor/components/quickgrid#page-items-with-a-paginator-component)
4547
* [`QuickGrid`](xref:blazor/components/quickgrid)
4648
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
4749
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
4850
* [`SectionContent`](xref:blazor/components/sections)
4951
* [`SectionOutlet`](xref:blazor/components/sections)
52+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
5053
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
5154
* [`Virtualize`](xref:blazor/components/virtualization)
5255

@@ -74,16 +77,19 @@ The following built-in Razor components are provided by the Blazor framework. Fo
7477
* [`InputSelect`](xref:blazor/forms/input-components)
7578
* [`InputText`](xref:blazor/forms/input-components)
7679
* [`InputTextArea`](xref:blazor/forms/input-components)
80+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
7781
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
7882
* [`NavigationLock`](xref:blazor/fundamentals/routing#handleprevent-location-changes)
7983
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
8084
* [`PageTitle`](xref:blazor/components/control-head-content)
85+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
8186
* [`Paginator`](xref:blazor/components/quickgrid#page-items-with-a-paginator-component)
8287
* [`QuickGrid`](xref:blazor/components/quickgrid)
8388
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
8489
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
8590
* [`SectionContent`](xref:blazor/components/sections)
8691
* [`SectionOutlet`](xref:blazor/components/sections)
92+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
8793
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
8894
* [`Virtualize`](xref:blazor/components/virtualization)
8995

@@ -109,12 +115,15 @@ The following built-in Razor components are provided by the Blazor framework. Fo
109115
* [`InputSelect`](xref:blazor/forms/input-components)
110116
* [`InputText`](xref:blazor/forms/input-components)
111117
* [`InputTextArea`](xref:blazor/forms/input-components)
118+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
112119
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
113120
* [`NavigationLock`](xref:blazor/fundamentals/routing#handleprevent-location-changes)
114121
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
122+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
115123
* [`PageTitle`](xref:blazor/components/control-head-content)
116124
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
117125
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
126+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
118127
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
119128
* [`Virtualize`](xref:blazor/components/virtualization)
120129

@@ -140,11 +149,14 @@ The following built-in Razor components are provided by the Blazor framework. Fo
140149
* [`InputSelect`](xref:blazor/forms/input-components)
141150
* [`InputText`](xref:blazor/forms/input-components)
142151
* [`InputTextArea`](xref:blazor/forms/input-components)
152+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
143153
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
144154
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
155+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
145156
* [`PageTitle`](xref:blazor/components/control-head-content)
146157
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
147158
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
159+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
148160
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
149161
* [`Virtualize`](xref:blazor/components/virtualization)
150162

@@ -165,10 +177,13 @@ The following built-in Razor components are provided by the Blazor framework. Fo
165177
* [`InputSelect`](xref:blazor/forms/input-components)
166178
* [`InputText`](xref:blazor/forms/input-components)
167179
* [`InputTextArea`](xref:blazor/forms/input-components)
180+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
168181
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
169182
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
183+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
170184
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
171185
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
186+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
172187
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
173188
* [`Virtualize`](xref:blazor/components/virtualization)
174189

@@ -188,10 +203,13 @@ The following built-in Razor components are provided by the Blazor framework. Fo
188203
* [`InputSelect`](xref:blazor/forms/input-components)
189204
* [`InputText`](xref:blazor/forms/input-components)
190205
* [`InputTextArea`](xref:blazor/forms/input-components)
206+
* [`LayoutComponentBase`](xref:blazor/components/layouts#layout-components)
191207
* [`LayoutView`](xref:blazor/components/layouts#apply-a-layout-to-arbitrary-content-layoutview-component)
192208
* [`NavLink`](xref:blazor/fundamentals/routing#navlink-component)
209+
* [`OwningComponentBase`](xref:fundamentals/dependency-injection#utility-base-component-classes-to-manage-a-di-scope)
193210
* [`Router`](xref:blazor/fundamentals/routing#route-templates)
194211
* [`RouteView`](xref:blazor/fundamentals/routing#route-templates)
212+
* [`ValidationMessage`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
195213
* [`ValidationSummary`](xref:blazor/forms/validation#validation-summary-and-validation-message-components)
196214

197215
:::moniker-end

aspnetcore/blazor/components/js-spa-frameworks.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ This article covers how to render Razor components from JavaScript, use Blazor c
2323

2424
## Angular sample apps
2525

26-
<!-- UPDATE 9.0 Add migration instructions cross-link to .NET 9 -->
26+
<!-- UPDATE 10.0 Add migration instructions -->
2727

28-
* [CustomElementsBlazorSample (Blazor Server) (`javiercn/CustomElementsBlazorSample`, branch: `blazor-server`)](https://github.com/javiercn/CustomElementsBlazorSample/tree/blazor-server): Blazor Server is supported in .NET 8. To migrate this .NET 7 sample to .NET 8, see <xref:migration/70-to-80#update-a-blazor-server-app>.
29-
* [CustomElementsBlazorSample (Blazor WebAssembly) (`javiercn/CustomElementsBlazorSample`, branch: `blazor-wasm`)](https://github.com/javiercn/CustomElementsBlazorSample/tree/blazor-wasm): To migrate this .NET 7 sample to .NET 8, see <xref:migration/70-to-80#update-a-blazor-webassembly-app>.
28+
* [CustomElementsBlazorSample (Blazor Server) (`javiercn/CustomElementsBlazorSample`, branch: `blazor-server`)](https://github.com/javiercn/CustomElementsBlazorSample/tree/blazor-server): Blazor Server is supported in .NET 8/9. To migrate this .NET 7 sample, see <xref:migration/70-to-80#update-a-blazor-server-app> and <xref:migration/80-to-90>.
29+
* [CustomElementsBlazorSample (Blazor WebAssembly) (`javiercn/CustomElementsBlazorSample`, branch: `blazor-wasm`)](https://github.com/javiercn/CustomElementsBlazorSample/tree/blazor-wasm): To migrate this .NET 7 sample, see <xref:migration/70-to-80#update-a-blazor-webassembly-app> and <xref:migration/80-to-90>.
3030

3131
## Render Razor components from JavaScript
3232

aspnetcore/blazor/components/lifecycle.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,6 @@ Component lifecycle events:
3838
3939
A parent component renders before its children components because rendering is what determines which children are present. If synchronous parent component initialization is used, the parent initialization is guaranteed to complete first. If asynchronous parent component initialization is used, the completion order of parent and child component initialization can't be determined because it depends on the initialization code running.
4040

41-
<!-- UPDATE 9.0 Update the diagram to drop "Property injection"?
42-
https://github.com/dotnet/AspNetCore.Docs/issues/32091 -->
43-
4441
![Component lifecycle events of a Razor component in Blazor](~/blazor/components/lifecycle/_static/lifecycle1.png)
4542

4643
DOM event processing:
-9.4 KB
Loading

aspnetcore/blazor/components/quickgrid.md

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ To implement a `QuickGrid` component:
4343
* <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A>: If true, the grid is rendered with virtualization. This is normally used in conjunction with scrolling and causes the grid to fetch and render only the data around the current scroll viewport. This can greatly improve the performance when scrolling through large data sets. If you use <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A>, you should supply a value for <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.ItemSize%2A> and must ensure that every row renders with a constant height. Generally, it's preferable not to use <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A> if the amount of data rendered is small or if you're using pagination.
4444
* <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.ItemSize%2A>: Only applicable when using <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A>. <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.ItemSize%2A> defines an expected height in pixels for each row, allowing the virtualization mechanism to fetch the correct number of items to match the display size and to ensure accurate scrolling.
4545
* <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.ItemKey%2A>: Optionally defines a value for `@key` on each rendered row. Typically, this is used to specify a unique identifier, such as a primary key value, for each data item. This allows the grid to preserve the association between row elements and data items based on their unique identifiers, even when the `TGridItem` instances are replaced by new copies (for example, after a new query against the underlying data store). If not set, the `@key` is the `TGridItem` instance.
46-
* `OverscanCount`: Defines how many additional items to render before and after the visible region to reduce rendering frequency during scrolling. While higher values can improve scroll smoothness by rendering more items off-screen, a higher value can also result in an increase in initial load times. Finding a balance based on your data set size and user experience requirements is recommended. The default value is 3. Only available when using <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A>.
46+
* <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.OverscanCount%2A>: Defines how many additional items to render before and after the visible region to reduce rendering frequency during scrolling. While higher values can improve scroll smoothness by rendering more items off-screen, a higher value can also result in an increase in initial load times. Finding a balance based on your data set size and user experience requirements is recommended. The default value is 3. Only available when using <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Virtualize%2A>.
4747
* <xref:Microsoft.AspNetCore.Components.QuickGrid.QuickGrid%601.Pagination%2A>: Optionally links this `TGridItem` instance with a <xref:Microsoft.AspNetCore.Components.QuickGrid.PaginationState> model, causing the grid to fetch and render only the current page of data. This is normally used in conjunction with a <xref:Microsoft.AspNetCore.Components.QuickGrid.Paginator> component or some other UI logic that displays and updates the supplied <xref:Microsoft.AspNetCore.Components.QuickGrid.PaginationState> instance.
4848
* In the `QuickGrid` child content (<xref:Microsoft.AspNetCore.Components.RenderFragment>), specify <xref:Microsoft.AspNetCore.Components.QuickGrid.PropertyColumn`2>s, which represent `TGridItem` columns whose cells display values:
4949
* <xref:Microsoft.AspNetCore.Components.QuickGrid.PropertyColumn%602.Property%2A>: Defines the value to be displayed in this column's cells.
@@ -131,8 +131,8 @@ Set the `QuickGrid` component's <xref:Microsoft.AspNetCore.Components.QuickGrid.
131131
<QuickGrid Items="..." Pagination="pagination">
132132
```
133133

134-
<!-- UPDATE 9.0 Check on RC2 per https://github.com/dotnet/aspnetcore/issues/57289
135-
to see if it's resolved for multiple paginator components. -->
134+
<!-- UPDATE 10.0 Tracked by https://github.com/dotnet/aspnetcore/issues/57289
135+
for multiple paginator components problem. -->
136136

137137
To provide a UI for pagination, add a [`Paginator` component](xref:Microsoft.AspNetCore.Components.QuickGrid.Paginator) above or below the `QuickGrid` component. Set the <xref:Microsoft.AspNetCore.Components.QuickGrid.Paginator.State%2A?displayProperty=nameWithType> to `pagination`:
138138

@@ -236,14 +236,10 @@ The following example filters movies by a movie title entered in a search box. T
236236
}
237237
```
238238

239-
<!-- UPDATE 9.0 - Enable this cross-link after merging
240-
https://github.com/dotnet/AspNetCore.Docs/pull/32747.
241-
242239
For a working example, see the following resources:
243240

244241
* [Build a Blazor movie database app tutorial](xref:blazor/tutorials/movie-database-app/index)
245242
* [Blazor movie database sample app](https://github.com/dotnet/blazor-samples): Select the latest version folder in the repository. The sample folder for the tutorial's project is named `BlazorWebAppMovies`.
246-
-->
247243

248244
## Display name support
249245

@@ -492,9 +488,4 @@ dotnet aspnet-codegenerator blazor -h
492488

493489
---
494490

495-
<!-- UPDATE 9.0 Uncomment link after
496-
https://github.com/dotnet/AspNetCore.Docs/pull/32747
497-
merges.
498-
499491
For an example use of the `QuickGrid` scaffolder, see <xref:blazor/tutorials/movie-database-app/index>.
500-
-->

0 commit comments

Comments
 (0)