Co nowego w programie ASP.NET Core 3.1

W tym artykule przedstawiono najważniejsze zmiany w programie ASP.NET Core 3.1 z linkami do odpowiedniej dokumentacji.

Częściowa obsługa klas dla Razor składników

Razor składniki są teraz generowane jako klasy częściowe. Kod składnika Razor można napisać przy użyciu pliku za pomocą kodu zdefiniowanego jako klasa częściowa, a nie definiowania całego kodu dla składnika w jednym pliku. Aby uzyskać więcej informacji, zobacz Częściowa obsługa klas.

Pomocnik tagów składników i przekazywanie parametrów do składników najwyższego poziomu

W programie Blazor ASP.NET Core 3.0 składniki były renderowane na stronach i widokach przy użyciu pomocnika HTML (Html.RenderComponentAsync). W programie ASP.NET Core 3.1 renderuj składnik ze strony lub widoku przy użyciu nowego pomocnika tagów składników:

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

Pomocnik HTML pozostaje obsługiwany w programie ASP.NET Core 3.1, ale zaleca się pomocnik tagów składników.

Blazor Server aplikacje mogą teraz przekazywać parametry do składników najwyższego poziomu podczas początkowego renderowania. Wcześniej można było przekazać parametry tylko do składnika najwyższego poziomu za pomocą elementu RenderMode.Static. W tej wersji obsługiwane są zarówno elementy RenderMode.Server , jak i RenderMode.ServerPrerendered . Wszystkie określone wartości parametrów są serializowane jako JSWŁĄCZONE i uwzględnione w początkowej odpowiedzi.

Na przykład prerender Counter składnika o wartości przyrostowej (IncrementAmount):

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

Aby uzyskać więcej informacji, zobacz Integrowanie składników ze Razor stronami i aplikacjami MVC.

Obsługa kolejek udostępnionych w systemie HTTP.sys

Protokół HTTP.sys obsługuje tworzenie kolejek żądań anonimowych. W ASP.NET Core 3.1 dodaliśmy możliwość tworzenia lub dołączania do istniejącej kolejki żądań HTTP.sys. Tworzenie lub dołączanie do istniejącej kolejki żądań HTTP.sys umożliwia scenariusze, w których proces kontrolera HTTP.sys, który jest właścicielem kolejki, jest niezależny od procesu odbiornika. Ta niezależność umożliwia zachowanie istniejących połączeń i w kolejce żądań między ponownym uruchomieniem procesu odbiornika:

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

Zmiany powodujące niezgodność dla witryny SameSite cookie

Zachowanie witryny SameSite cookiezmieniło się, aby odzwierciedlić nadchodzące zmiany przeglądarki. Może to mieć wpływ na scenariusze uwierzytelniania, takie jak AzureAd, OpenId Połączenie lub WsFederation. Aby uzyskać więcej informacji, zobacz Praca z usługą SameSite cookies w usłudze ASP.NET Core.

Zapobieganie domyślnym akcjom dla zdarzeń w Blazor aplikacjach

Użyj atrybutu @on{EVENT}:preventDefault dyrektywy, aby zapobiec domyślnej akcji zdarzenia. W poniższym przykładzie domyślna akcja wyświetlania znaku klucza w polu tekstowym jest blokowana:

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

Aby uzyskać więcej informacji, zobacz Zapobieganie akcjam domyślnym.

Zatrzymywanie propagacji zdarzeń w Blazor aplikacjach

Użyj atrybutu dyrektywy, @on{EVENT}:stopPropagation aby zatrzymać propagację zdarzeń. W poniższym przykładzie zaznaczenie pola wyboru uniemożliwia propagację zdarzeń z elementu podrzędnego <div> do elementu nadrzędnego <div>:

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

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

@code {
    private bool _stopPropagation = false;
}

Aby uzyskać więcej informacji, zobacz Zatrzymaj propagację zdarzeń.

Szczegółowe błędy podczas Blazor tworzenia aplikacji

Blazor Gdy aplikacja nie działa prawidłowo podczas programowania, otrzymuje szczegółowe informacje o błędzie z aplikacji, pomagając w rozwiązywaniu problemów i rozwiązywaniu problemu. Gdy wystąpi błąd, Blazor aplikacje wyświetlają złoty pasek w dolnej części ekranu:

  • Podczas opracowywania złoty pasek kieruje Cię do konsoli przeglądarki, gdzie można zobaczyć wyjątek.
  • W środowisku produkcyjnym złoty pasek powiadamia użytkownika o wystąpieniu błędu i zaleca odświeżenie przeglądarki.

Aby uzyskać więcej informacji, zobacz Handle errors in ASP.NET Core apps (Obsługa błędów w aplikacjach platformy ASP.NET CoreBlazor).