Novinky v ASP.NET Core 3.1

Tento článek popisuje nejvýznamnější změny v ASP.NET Core 3.1 s odkazy na příslušnou dokumentaci.

Částečná podpora tříd pro Razor komponenty

Razor komponenty jsou nyní generovány jako částečné třídy. Kód pro komponentu Razor lze zapsat pomocí souboru s kódem za definovaným jako částečná třída místo definování veškerého kódu pro komponentu v jednom souboru. Další informace naleznete v tématu Částečná podpora tříd.

Pomocná rutina značek komponent a předání parametrů komponentám nejvyšší úrovně

V Blazor ASP.NET Core 3.0 se komponenty vykreslovaly na stránky a zobrazení pomocí pomocné rutiny HTML (Html.RenderComponentAsync). V ASP.NET Core 3.1 vykreslujte komponentu ze stránky nebo zobrazení pomocí nového pomocníka značky komponenty:

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

Pomocník HTML zůstává podporován v ASP.NET Core 3.1, ale doporučuje se pomocná rutina značek komponent.

Blazor Server aplikace teď můžou během počátečního vykreslení předávat parametry komponentám nejvyšší úrovně. Dříve bylo možné předat parametry pouze komponentě nejvyšší úrovně pomocí RenderMode.Static. V této verzi se podporují renderMode.Server i RenderMode.ServerPrerendered . Všechny zadané hodnoty parametrů jsou serializovány jako JSON a zahrnuty do počáteční odpovědi.

Například předkreslení komponenty s přírůstkovou částkou Counter (IncrementAmount):

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

Další informace najdete v tématu Integrace komponent do Razor aplikací Pages a MVC.

Podpora sdílených front v HTTP.sys

HTTP.sys podporuje vytváření anonymních front požadavků. V ASP.NET Core 3.1 jsme přidali možnost vytvořit nebo připojit existující pojmenovanou frontu požadavků HTTP.sys. Vytvoření nebo připojení k existující pojmenované frontě požadavků HTTP.sys umožňuje scénáře, kdy proces kontroleru HTTP.sys, který vlastní frontu, je nezávislý na procesu naslouchacího procesu. Tato nezávislost umožňuje zachovat stávající připojení a zařazení požadavků mezi restartováním procesu naslouchacího procesu:

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

Zásadní změny pro SameSite cookies

Chování samesite cookies se změnilo tak, aby odráželo nadcházející změny prohlížeče. To může mít vliv na scénáře ověřování, jako jsou AzureAd, OpenId Připojení nebo WsFederation. Další informace najdete v tématu Práce se samesite cookies v ASP.NET Core.

Zabránění výchozím akcím pro události v Blazor aplikacích

Pomocí atributu @on{EVENT}:preventDefault direktivy zabráníte výchozí akci události. V následujícím příkladu je výchozí akce zobrazení znaku klíče v textovém poli zabráněna:

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

Další informace najdete v tématu Prevence výchozích akcí.

Zastavení šíření událostí v Blazor aplikacích

Pomocí atributu @on{EVENT}:stopPropagation direktivy zastavte šíření událostí. V následujícím příkladu zaškrtnutím políčka zabráníte rozšíření událostí z podřízeného <div> objektu do nadřazeného <div>objektu:

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

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

@code {
    private bool _stopPropagation = false;
}

Další informace naleznete v tématu Zastavení šíření událostí.

Podrobné chyby při Blazor vývoji aplikací

Blazor Pokud aplikace během vývoje nefunguje správně, pomůže vám při řešení potíží a opravě problému získat podrobné informace o chybách. Když dojde k chybě, Blazor aplikace zobrazí v dolní části obrazovky zlatý pruh:

  • Při vývoji vás zlatý pruh přesměruje na konzolu prohlížeče, kde se zobrazí výjimka.
  • V produkčním prostředí zlatý pruh uživatele upozorní, že došlo k chybě, a doporučí aktualizaci prohlížeče.

Další informace najdete v tématu Zpracování chyb v aplikacích ASP.NET CoreBlazor.