diff --git a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in index fb2add30603f..844e9fb3a0f7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/BlazorServerWeb-CSharp.csproj.in @@ -7,6 +7,7 @@ 1 True BlazorServerWeb_CSharp + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Client.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Client.csproj.in index 4fbe364042a7..0d2a155b6059 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Client.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Client.csproj.in @@ -8,6 +8,7 @@ `$(AssemblyName.Replace(' ', '_')) + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in index 67f34756c0fc..203f86cc4ec7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Server.csproj.in @@ -8,6 +8,7 @@ True ComponentsWebAssembly-CSharp.Server `$(AssemblyName.Replace(' ', '_')) + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Shared.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Shared.csproj.in index fdffee5bc537..90c3c887d6e1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Shared.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/ComponentsWebAssembly-CSharp.Shared.csproj.in @@ -2,6 +2,7 @@ ${DefaultNetCoreTargetFramework} + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in index f685d2d72dac..bcda65f31ff9 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/EmptyWeb-CSharp.csproj.in @@ -4,6 +4,7 @@ ${DefaultNetCoreTargetFramework} True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/GrpcService-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/GrpcService-CSharp.csproj.in index f7a69fba22f2..57df6d556e24 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/GrpcService-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/GrpcService-CSharp.csproj.in @@ -2,6 +2,7 @@ ${DefaultNetCoreTargetFramework} + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in index 298bcecd8dd1..b3dd68132f3d 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorClassLibrary-CSharp.csproj.in @@ -4,6 +4,7 @@ ${DefaultNetCoreTargetFramework} true Company.RazorClassLibrary1 + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in index 5869c4f86890..879ba26464b0 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/RazorPagesWeb-CSharp.csproj.in @@ -6,6 +6,7 @@ True Company.WebApplication1 false + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in index 2da0a7fcb7d4..e43660dfef73 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-CSharp.csproj.in @@ -6,6 +6,7 @@ True Company.WebApplication1 false + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in index 24f92d2299c7..e5f82d9fa7ce 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/WebApi-CSharp.csproj.in @@ -5,6 +5,7 @@ aspnet-Company.WebApplication1-53bc9b9d-9d6a-45d4-8429-2a2761773502 True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/Worker-CSharp.csproj.in b/src/ProjectTemplates/Web.ProjectTemplates/Worker-CSharp.csproj.in index 284920b4f68c..689eb3667654 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/Worker-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/Worker-CSharp.csproj.in @@ -5,6 +5,7 @@ dotnet-Company.Application1-53bc9b9d-9d6a-45d4-8429-2a2761773502 True Company.Application1 + enable diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/dotnetcli.host.json index 3a5e6c90a856..1719350d8a57 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/dotnetcli.host.json @@ -79,6 +79,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json index 3d052b0b98e2..d0a371fdec2d 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/.template.config/template.json @@ -438,6 +438,12 @@ "datatype": "bool", "description": "If specified, skips the automatic restore of the project on create.", "defaultValue": "false" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml index a4f854aac31f..eda27e908a71 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Areas/Identity/Pages/Shared/_LoginPartial.cshtml @@ -7,7 +7,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Data/WeatherForecast.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Data/WeatherForecast.cs index dbe0d36a71e1..230c10abeef7 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Data/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Data/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml index 6b3b6a193041..00df0904e9cf 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml @@ -18,7 +18,7 @@ Error. An error occurred while processing your request. - @if (Model.ShowRequestId) + @if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs index 4c944dc5d82c..affc4f466500 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace BlazorServerWeb_CSharp.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json index f4f07149c87a..7cc5a0ac71f5 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json @@ -89,6 +89,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json index 4fba7cc9b54f..7f6bc8acd0ae 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json @@ -483,6 +483,12 @@ "GenerateApiOrGraph": { "type": "computed", "value": "(GenerateApi || GenerateGraph)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor index a36d7d157d4b..ecc068bab0ad 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor @@ -74,7 +74,11 @@ else public int TemperatureC { get; set; } +@*#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif*@ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml index 913f4c479bf7..1be0a5451871 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml @@ -15,7 +15,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml index b1ff51af394a..08b78a568f93 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml @@ -18,7 +18,7 @@ Error. An error occurred while processing your request. - @if (Model.ShowRequestId) + @if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs index 92282ce4c268..9d95b405e0d8 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace ComponentsWebAssembly_CSharp.Server.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs index 32e3d002de0b..3b44eebd1737 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs @@ -10,7 +10,11 @@ public class WeatherForecast public int TemperatureC { get; set; } +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json index 79c2dc39e3ab..c7c2081085d1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json @@ -21,6 +21,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json index a2bfac90afa5..672432b859aa 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json @@ -112,6 +112,12 @@ "datatype": "bool", "defaultValue": "false", "description": "Whether to turn off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren't used for --auth." + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json index 51aa5b982eb5..65962282fbeb 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json @@ -8,6 +8,10 @@ "ExcludeLaunchSettings": { "longName": "exclude-launch-settings", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json index 89185ed294e4..8a2812293518 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json @@ -58,6 +58,12 @@ "datatype": "bool", "description": "If specified, skips the automatic restore of the project on create.", "defaultValue": "false" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json index c658c087dd54..fc311e744e45 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json @@ -12,6 +12,10 @@ "SupportPagesAndViews": { "longName": "support-pages-and-views", "shortName": "s" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json index 3ef9e65cff98..2190ef076f08 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json @@ -69,6 +69,12 @@ "datatype": "bool", "defaultValue": "false", "description": "Whether to support adding traditional Razor pages and Views in addition to components to this library." + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json index a5b697ebcdb7..6b84694f93e1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json @@ -83,6 +83,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json index e43dfecf46ec..0a950b0d1633 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json @@ -368,6 +368,12 @@ "GenerateApiOrGraph": { "type": "computed", "value": "(GenerateApi || GenerateGraph)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs index 10108d2b1017..3867334f3bca 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace Company.WebApplication1.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml index c45b365fd466..7cc3147e0816 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml @@ -6,7 +6,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.OrgAuth.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.OrgAuth.cshtml index 8f7c9041e83e..bae914eb1ba0 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.OrgAuth.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.OrgAuth.cshtml @@ -11,7 +11,7 @@ @*#if (IndividualB2CAuth) -@if (User.Identity.IsAuthenticated) +@if (User.Identity?.IsAuthenticated == true) { @if (!string.IsNullOrEmpty(options.EditProfilePolicyId)) { @@ -38,7 +38,7 @@ else } #else -@if (User.Identity.IsAuthenticated) +@if (User.Identity?.IsAuthenticated == true) { Hello @User.Identity.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json index 07d2cda7491d..d6688e4cbc10 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/dotnetcli.host.json @@ -83,6 +83,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json index 6616642912c1..339dfc9e8b00 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/.template.config/template.json @@ -364,6 +364,12 @@ "GenerateApiOrGraph": { "type": "computed", "value": "(GenerateApi || GenerateGraph)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Models/ErrorViewModel.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Models/ErrorViewModel.cs index 6fe06d375908..5be6c9cef170 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Models/ErrorViewModel.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Models/ErrorViewModel.cs @@ -4,7 +4,11 @@ namespace Company.WebApplication1.Models { public class ErrorViewModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/Error.cshtml index a1e04783c67a..e8dd22190c6e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/Error.cshtml @@ -6,7 +6,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml index cd256aa9249f..921dbe1ebc8b 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml @@ -6,7 +6,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.OrgAuth.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.OrgAuth.cshtml index da2cbaf70188..fe8076391e56 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.OrgAuth.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.OrgAuth.cshtml @@ -12,7 +12,7 @@ var options = AzureADB2COptions.Value; @*#if (IndividualB2CAuth) -@if (User.Identity.IsAuthenticated) +@if (User.Identity?.IsAuthenticated == true) { @if (!string.IsNullOrEmpty(options.EditProfilePolicyId)) { @@ -39,7 +39,7 @@ else } #else -@if (User.Identity.IsAuthenticated) +@if (User.Identity?.IsAuthenticated == true) { Hello @User.Identity.Name! diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml index 06c02f4a3841..1f79c59a1191 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml @@ -1,4 +1,4 @@ -@using Company.WebApplication1.Models +@using Company.WebApplication1.Models @model ErrorViewModel @{ ViewData["Title"] = "Error"; @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json index b16a1f9a27a1..04ce069e1788 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json @@ -35,7 +35,7 @@ "DefaultScope": { "longName": "default-scope", "shortName": "" - }, + }, "Framework": { "longName": "framework" }, @@ -75,9 +75,13 @@ "DisableOpenAPI": { "longName": "no-openapi", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ "" ] -} \ No newline at end of file +} diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json index 1e31e0b5363d..260531941765 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json @@ -277,6 +277,12 @@ "EnableOpenAPI": { "type": "computed", "value": "(!DisableOpenAPI)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json index b1cf98e39bb8..3f088f276a3c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json @@ -11,6 +11,10 @@ "ExcludeLaunchSettings": { "longName": "exclude-launch-settings", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json index 19358bf86a30..b1a3a95cd70e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json @@ -67,6 +67,12 @@ "datatype": "bool", "description": "If specified, skips the automatic restore of the project on create.", "defaultValue": "false" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in index bd68bc27bc01..aae44e395d26 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in @@ -9,6 +9,7 @@ npm start True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in index 43706ed0b473..d4b404253736 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in @@ -13,6 +13,7 @@ npm start True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json index 1a247d9d6282..0ff4e391bb9a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json @@ -27,6 +27,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json index 1302b3fd2ae5..f7332c9e5f74 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json @@ -193,6 +193,12 @@ "HostIdentifier": { "type": "bind", "binding": "HostIdentifier" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json index 1a247d9d6282..0ff4e391bb9a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json @@ -27,6 +27,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json index 0d47ffbc17d5..2d892bbe9fc0 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json @@ -195,6 +195,12 @@ "HostIdentifier": { "type": "bind", "binding": "HostIdentifier" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } }
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs index 4c944dc5d82c..affc4f466500 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/BlazorServerWeb-CSharp/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace BlazorServerWeb_CSharp.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json index f4f07149c87a..7cc5a0ac71f5 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/dotnetcli.host.json @@ -89,6 +89,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json index 4fba7cc9b54f..7f6bc8acd0ae 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/.template.config/template.json @@ -483,6 +483,12 @@ "GenerateApiOrGraph": { "type": "computed", "value": "(GenerateApi || GenerateGraph)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor index a36d7d157d4b..ecc068bab0ad 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Client/Pages/FetchData.razor @@ -74,7 +74,11 @@ else public int TemperatureC { get; set; } +@*#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif*@ public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml index 913f4c479bf7..1be0a5451871 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Areas/Identity/Pages/Shared/_LoginPartial.cshtml @@ -15,7 +15,7 @@ @if (SignInManager.IsSignedIn(User)) {
@Model.RequestId
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs index 92282ce4c268..9d95b405e0d8 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Server/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace ComponentsWebAssembly_CSharp.Server.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs index 32e3d002de0b..3b44eebd1737 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/ComponentsWebAssembly-CSharp/Shared/WeatherForecast.cs @@ -10,7 +10,11 @@ public class WeatherForecast public int TemperatureC { get; set; } +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json index 79c2dc39e3ab..c7c2081085d1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/dotnetcli.host.json @@ -21,6 +21,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json index a2bfac90afa5..672432b859aa 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-CSharp/.template.config/template.json @@ -112,6 +112,12 @@ "datatype": "bool", "defaultValue": "false", "description": "Whether to turn off HTTPS. This option only applies if Individual, IndividualB2C, SingleOrg, or MultiOrg aren't used for --auth." + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json index 51aa5b982eb5..65962282fbeb 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/dotnetcli.host.json @@ -8,6 +8,10 @@ "ExcludeLaunchSettings": { "longName": "exclude-launch-settings", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json index 89185ed294e4..8a2812293518 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/GrpcService-CSharp/.template.config/template.json @@ -58,6 +58,12 @@ "datatype": "bool", "description": "If specified, skips the automatic restore of the project on create.", "defaultValue": "false" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json index c658c087dd54..fc311e744e45 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/dotnetcli.host.json @@ -12,6 +12,10 @@ "SupportPagesAndViews": { "longName": "support-pages-and-views", "shortName": "s" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json index 3ef9e65cff98..2190ef076f08 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorClassLibrary-CSharp/.template.config/template.json @@ -69,6 +69,12 @@ "datatype": "bool", "defaultValue": "false", "description": "Whether to support adding traditional Razor pages and Views in addition to components to this library." + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json index a5b697ebcdb7..6b84694f93e1 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/dotnetcli.host.json @@ -83,6 +83,10 @@ "CallsMicrosoftGraph": { "longName": "calls-graph", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json index e43dfecf46ec..0a950b0d1633 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/.template.config/template.json @@ -368,6 +368,12 @@ "GenerateApiOrGraph": { "type": "computed", "value": "(GenerateApi || GenerateGraph)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs index 10108d2b1017..3867334f3bca 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Error.cshtml.cs @@ -13,7 +13,11 @@ namespace Company.WebApplication1.Pages [IgnoreAntiforgeryToken] public class ErrorModel : PageModel { +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml index c45b365fd466..7cc3147e0816 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/RazorPagesWeb-CSharp/Pages/Shared/_LoginPartial.Identity.cshtml @@ -6,7 +6,7 @@ @if (SignInManager.IsSignedIn(User)) {
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml index cd256aa9249f..921dbe1ebc8b 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-CSharp/Views/Shared/_LoginPartial.Identity.cshtml @@ -6,7 +6,7 @@ @if (SignInManager.IsSignedIn(User)) {
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json index b16a1f9a27a1..04ce069e1788 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/dotnetcli.host.json @@ -35,7 +35,7 @@ "DefaultScope": { "longName": "default-scope", "shortName": "" - }, + }, "Framework": { "longName": "framework" }, @@ -75,9 +75,13 @@ "DisableOpenAPI": { "longName": "no-openapi", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ "" ] -} \ No newline at end of file +} diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json index 1e31e0b5363d..260531941765 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/.template.config/template.json @@ -277,6 +277,12 @@ "EnableOpenAPI": { "type": "computed", "value": "(!DisableOpenAPI)" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json index b1cf98e39bb8..3f088f276a3c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/dotnetcli.host.json @@ -11,6 +11,10 @@ "ExcludeLaunchSettings": { "longName": "exclude-launch-settings", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json index 19358bf86a30..b1a3a95cd70e 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/Worker-CSharp/.template.config/template.json @@ -67,6 +67,12 @@ "datatype": "bool", "description": "If specified, skips the automatic restore of the project on create.", "defaultValue": "false" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "primaryOutputs": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in index bd68bc27bc01..aae44e395d26 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/Angular-CSharp.csproj.in @@ -9,6 +9,7 @@ npm start True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in index 43706ed0b473..d4b404253736 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/React-CSharp.csproj.in @@ -13,6 +13,7 @@ npm start True Company.WebApplication1 + enable diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json index 1a247d9d6282..0ff4e391bb9a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/dotnetcli.host.json @@ -27,6 +27,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json index 1302b3fd2ae5..f7332c9e5f74 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/.template.config/template.json @@ -193,6 +193,12 @@ "HostIdentifier": { "type": "bind", "binding": "HostIdentifier" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json index 1a247d9d6282..0ff4e391bb9a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json @@ -27,6 +27,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json index 0d47ffbc17d5..2d892bbe9fc0 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json @@ -195,6 +195,12 @@ "HostIdentifier": { "type": "bind", "binding": "HostIdentifier" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } }
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } } diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json index 1a247d9d6282..0ff4e391bb9a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/dotnetcli.host.json @@ -27,6 +27,10 @@ "NoHttps": { "longName": "no-https", "shortName": "" + }, + "Nullable": { + "longName": "nullable", + "shortName": "" } }, "usageExamples": [ diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json index 0d47ffbc17d5..2d892bbe9fc0 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/.template.config/template.json @@ -195,6 +195,12 @@ "HostIdentifier": { "type": "bind", "binding": "HostIdentifier" + }, + "Nullable": { + "type": "parameter", + "datatype": "bool", + "defaultValue": "true", + "description": "Whether to enable nullable reference types for this project." } }, "tags": { diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml index 6f92b9565570..975f5be4d77c 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml @@ -7,7 +7,7 @@ Error. An error occurred while processing your request. -@if (Model.ShowRequestId) +@if (Model?.ShowRequestId ?? false) { Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } }
Request ID: @Model.RequestId diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs index b31bc6addd1f..ecf2761e95db 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Error.cshtml.cs @@ -19,7 +19,11 @@ public ErrorModel(ILogger logger) _logger = logger; } +#if (!Nullable) public string RequestId { get; set; } +#else + public string? RequestId { get; set; } +#endif public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml index f2884db7adca..8e7fccb5b361 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Pages/Shared/_LoginPartial.cshtml @@ -16,7 +16,7 @@ @if (SignInManager.IsSignedIn(User)) { - Hello @User.Identity.Name! + Hello @User.Identity?.Name! diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs index 128b3473696e..01b870efbe48 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/WeatherForecast.cs @@ -10,6 +10,10 @@ public class WeatherForecast public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); +#if (!Nullable) public string Summary { get; set; } +#else + public string? Summary { get; set; } +#endif } }