Condividi tramite


Novità di ASP.NET Core 3.1

Questo articolo illustra le modifiche più significative in ASP.NET Core 3.1 con collegamenti alla documentazione pertinente.

Supporto parziale delle classi per Razor i componenti

Razor i componenti vengono ora generati come classi parziali. Il codice per un Razor componente può essere scritto usando un file code-behind definito come classe parziale anziché definire tutto il codice per il componente in un singolo file. Per altre informazioni, vedere Supporto di classi parziali.

Helper tag componente e passare parametri a componenti di primo livello

In Blazor con ASP.NET Core 3.0, i componenti sono stati sottoposti a rendering in pagine e visualizzazioni usando un helper HTML (Html.RenderComponentAsync). In ASP.NET Core 3.1 eseguire il rendering di un componente da una pagina o da una visualizzazione con il nuovo helper tag del componente:

<component type="typeof(Counter)" render-mode="ServerPrerendered" />

L'helper HTML rimane supportato in ASP.NET Core 3.1, ma è consigliabile usare l'helper tag del componente.

Blazor Server le app possono ora passare parametri ai componenti di primo livello durante il rendering iniziale. In precedenza era possibile passare solo parametri a un componente di primo livello con RenderMode.Static. Con questa versione sono supportati sia RenderMode.Server che RenderMode.ServerPrerendered. I valori dei parametri specificati vengono serializzati come JSON e inclusi nella risposta iniziale.

Ad esempio, prerendere un Counter componente con un importo di incremento (IncrementAmount):

<component type="typeof(Counter)" render-mode="ServerPrerendered" 
    param-IncrementAmount="10" />

Per altre informazioni, vedere Integrare i componenti nelle Razor app Pages e MVC.

Supporto per le code condivise in HTTP.sys

HTTP.sys supporta la creazione di code di richieste anonime. In ASP.NET Core 3.1 è stata aggiunta la possibilità di creare o collegare a una coda di richieste denominata HTTP.sys esistente. La creazione o il collegamento a una coda di richieste denominata HTTP.sys esistente consente scenari in cui il processo del controller HTTP.sys proprietario della coda è indipendente dal processo del listener. Questa indipendenza consente di mantenere le connessioni esistenti e le richieste accodate tra i riavvii del processo del listener:

public static IHostBuilder CreateHostBuilder(string[] args) =>
     Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            // ...
            webBuilder.UseHttpSys(options =>
            {
                options.RequestQueueName = "MyExistingQueue";
                options.RequestQueueMode = RequestQueueMode.CreateOrAttach;
            });
        });

Modifiche di rilievo per i cookie SameSite

Il comportamento dei cookie SameSite è cambiato in modo da riflettere le modifiche future del browser. Ciò può influire sugli scenari di autenticazione come AzureAd, OpenIdConnect o WsFederation. Per altre informazioni, vedere Usare i cookie SameSite in ASP.NET Core.

Impedire le azioni predefinite per gli eventi nelle Blazor app

Usare l'attributo @on{EVENT}:preventDefault di direttiva per impedire l'azione predefinita per un evento. Nell'esempio seguente viene impedita l'azione predefinita di visualizzazione del carattere della chiave nella casella di testo:

<input value="@_count" @onkeypress="KeyHandler" @onkeypress:preventDefault />

Per altre informazioni, vedere Impedire le azioni predefinite.

Arrestare la propagazione degli eventi nelle Blazor app

Usare l'attributo di direttiva per arrestare la @on{EVENT}:stopPropagation propagazione degli eventi. Nell'esempio seguente, la selezione della casella di controllo impedisce agli eventi click dal figlio <div> di propagarsi all'elemento padre <div>:

<input @bind="_stopPropagation" type="checkbox" />

<div @onclick="OnSelectParentDiv">
    <div @onclick="OnSelectChildDiv" @onclick:stopPropagation="_stopPropagation">
        ...
    </div>
</div>

@code {
    private bool _stopPropagation = false;
}

Per altre informazioni, vedere Arrestare la propagazione degli eventi.

Errori dettagliati durante Blazor lo sviluppo di app

Quando un'app Blazor non funziona correttamente durante lo sviluppo, riceve informazioni dettagliate sull'errore dall'app per facilitare la risoluzione e la risoluzione del problema. Quando si verifica un errore, Blazor le app visualizzano una barra oro nella parte inferiore dello schermo:

  • Durante lo sviluppo, la barra oro indirizza l'utente alla console del browser, in cui è possibile visualizzare l'eccezione.
  • In produzione, la barra oro notifica all'utente che si è verificato un errore e consiglia di aggiornare il browser.

Per altre informazioni, vedere Gestire gli errori nelle app ASP.NET CoreBlazor.