You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: aspnetcore/blazor/call-web-api.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,7 +57,12 @@ Example:
57
57
58
58
In the app's `Program` file, call:
59
59
60
-
<!-- UPDATE 10.0 - Missing API doc for 'Microsoft.Identity.Web.DownstreamApiExtensions.AddDownstreamApi' -->
60
+
<!-- UPDATE 11.0 - Awaiting API per https://github.com/dotnet/AspNetCore.Docs/issues/36373.
61
+
Marking this for 11.0 because it's the last 10.0 item and inline tracking
62
+
now adopts 11.0 or later work items. This ensures that this inline item
63
+
isn't missed.
64
+
65
+
Missing API doc for 'Microsoft.Identity.Web.DownstreamApiExtensions.AddDownstreamApi' -->
61
66
62
67
*<xref:Microsoft.Identity.Web.MicrosoftIdentityWebApiAuthenticationBuilder.EnableTokenAcquisitionToCallDownstreamApi%2A>: Enables token acquisition to call web APIs.
63
68
*`AddDownstreamApi`: Microsoft Identity Web packages provide API to create a named downstream web service for making web API calls. <xref:Microsoft.Identity.Abstractions.IDownstreamApi> is injected into a server-side class, which is used to call <xref:Microsoft.Identity.Abstractions.IDownstreamApi.CallApiForUserAsync%2A> to obtain weather data from an external web API (`MinimalApiJwt` project).
Copy file name to clipboardExpand all lines: aspnetcore/blazor/forms/validation.md
+39-8Lines changed: 39 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1576,27 +1576,23 @@ The <xref:System.ComponentModel.DataAnnotations.CompareAttribute> doesn't work w
1576
1576
1577
1577
Blazor form validation includes support for validating properties of nested objects and collection items with the built-in <xref:Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator>.
1578
1578
1579
-
To create a validated form, use a <xref:Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator> component inside an <xref:Microsoft.AspNetCore.Components.Forms.EditForm> component, just as before.
1579
+
To create a validated form, use a <xref:Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator> component inside an <xref:Microsoft.AspNetCore.Components.Forms.EditForm> component.
1580
1580
1581
1581
To opt into the nested objects and collection types validation feature:
1582
1582
1583
1583
1. Call the <xref:Microsoft.Extensions.DependencyInjection.ValidationServiceCollectionExtensions.AddValidation%2A> extension method in the `Program` file where services are registered.
1584
1584
2. Declare the form model types in a C# class file, not in a Razor component (`.razor`).
1585
1585
3. Annotate the root form model type with the [`[ValidatableType]` attribute](xref:Microsoft.Extensions.Validation.ValidatableTypeAttribute).
1586
1586
1587
-
Without following the preceding steps, form validation behavior doesn't include nested model and collection type validation.
1588
-
1589
-
<!-- UPDATE 10.0 - Replace with a fully working, cut-'n-paste example -->
1590
-
1591
-
The following example demonstrates customer orders with the improved form validation (details omitted for brevity):
1587
+
The following example demonstrates customer orders with nested collection form validation.
1592
1588
1593
1589
In `Program.cs`, call <xref:Microsoft.Extensions.DependencyInjection.ValidationServiceCollectionExtensions.AddValidation%2A> on the service collection:
1594
1590
1595
1591
```csharp
1596
1592
builder.Services.AddValidation();
1597
1593
```
1598
1594
1599
-
In the following `Order` class, the `[ValidatableType]` attribute is required on the top-level model type. The other types are discovered automatically.`OrderItem` and `ShippingAddress` aren't shown for brevity, but nested and collection validation works the same way in those types if they were shown.
1595
+
In the following `Order` class, the `[ValidatableType]` attribute is required on the top-level model type. The other types are discovered automatically.
1600
1596
1601
1597
`Order.cs`:
1602
1598
@@ -1622,6 +1618,41 @@ public class Customer
1622
1618
}
1623
1619
```
1624
1620
1621
+
`OrderItem.cs`:
1622
+
1623
+
```csharp
1624
+
publicclassOrderItem
1625
+
{
1626
+
[Required(ErrorMessage="Id is required.")]
1627
+
publicintId { get; set; }
1628
+
1629
+
[Required(ErrorMessage="Description is required.")]
1630
+
publicstring? Description { get; set; }
1631
+
1632
+
[Required(ErrorMessage="Price is required.")]
1633
+
publicdecimalPrice { get; set; }
1634
+
}
1635
+
```
1636
+
1637
+
`ShippingAddress.cs`:
1638
+
1639
+
```csharp
1640
+
publicclassShippingAddress
1641
+
{
1642
+
[Required(ErrorMessage="Street is required.")]
1643
+
publicstring? Street { get; set; }
1644
+
1645
+
[Required(ErrorMessage="City is required.")]
1646
+
publicstring? City { get; set; }
1647
+
1648
+
[Required(ErrorMessage="State/Province is required.")]
1649
+
publicstring? StateProvince { get; set; }
1650
+
1651
+
[Required(ErrorMessage="PostalCode is required.")]
1652
+
publicstring? PostalCode { get; set; }
1653
+
}
1654
+
```
1655
+
1625
1656
In the following `OrderPage` component, the <xref:Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator> component is present in the <xref:Microsoft.AspNetCore.Components.Forms.EditForm> component.
1626
1657
1627
1658
`OrderPage.razor`:
@@ -1649,7 +1680,7 @@ In the following `OrderPage` component, the <xref:Microsoft.AspNetCore.Component
1649
1680
}
1650
1681
```
1651
1682
1652
-
The requirement to declare the model types outside of Razor components (`.razor` files) is due to the fact that both the new validation feature and the Razor compiler itself are using a source generator. Currently, output of one source generator can't be used as an input for another source generator.
1683
+
The requirement to declare the model types outside of Razor components (`.razor` files) is due to the fact that both the nested collection validation feature and the Razor compiler itself are using a source generator. Currently, output of one source generator can't be used as an input for another source generator.
1653
1684
1654
1685
For guidance on using validation models from a different assembly, see the [Use validation models from a different assembly](#use-validation-models-from-a-different-assembly) section.
0 commit comments