ASP.NET Core でのコンポーネントの状態保持タグ ヘルパー

Persist Component State Tag Helper を使うと、Razor Pages または MVC アプリのページまたはビュー内にレンダリングされたルーティング不可能な Razor コンポーネントの状態を保存できます。

前提条件

ASP.NET Core Razor コンポーネントを ASP.NET Core アプリに統合する」記事の「ページまたはビューでルーティング不可能なコンポーネントを使用する」セクションのガイダンスに従ってください。

構成に関するセクションのガイダンスに、次のいずれかにおいても従います。

プリレンダリングされたコンポーネントの状態を保持する

プリレンダリング済みコンポーネントの状態を保持するには、コンポーネントの状態保持タグ ヘルパー (参照ソース) を使用します。 コンポーネントをプリレンダリングするアプリのレイアウトの </body> の終了タグの内側に、タグ ヘルパのタグ <persist-component-state /> を追加します。

Note

通常、.NET 参照ソースへのドキュメント リンクを使用すると、リポジトリの既定のブランチが読み込まれます。このブランチは、.NET の次回リリースに向けて行われている現在の開発を表します。 特定のリリースのタグを選択するには、[Switch branches or tags](ブランチまたはタグの切り替え) ドロップダウン リストを使います。 詳細については、「ASP.NET Core ソース コードのバージョン タグを選択する方法」 (dotnet/AspNetCore.Docs #26205) を参照してください。

WebAssembly でプリレンダリング (WebAssemblyPrerendered) またはサーバーでプリレンダリング (ServerPrerendered) された埋め込みコンポーネントの Pages/Shared/_Layout.cshtml の場合:

<body>
    ...

    <persist-component-state />
</body>

PersistentComponentState サービスを使用してどの状態を永続化するか決定します。 アプリが一時停止される前に、PersistentComponentState.RegisterOnPersisting によってコールバックが登録され、コンポーネントの状態が保持されます。 状態は、アプリケーションの再開時に取得されます。

詳細と例については、ASP.NET Core Razor コンポーネントのプリレンダリングに関する記事を参照してください。

プリレンダリング済みコンポーネントの状態を保持するには、コンポーネントの状態保持タグ ヘルパー (参照ソース) を使用します。 コンポーネントをプリレンダリングするアプリの _Host ページの </body> の終了タグの内側に、タグ ヘルパのタグ <persist-component-state /> を追加します。

Note

通常、.NET 参照ソースへのドキュメント リンクを使用すると、リポジトリの既定のブランチが読み込まれます。このブランチは、.NET の次回リリースに向けて行われている現在の開発を表します。 特定のリリースのタグを選択するには、[Switch branches or tags](ブランチまたはタグの切り替え) ドロップダウン リストを使います。 詳細については、「ASP.NET Core ソース コードのバージョン タグを選択する方法」 (dotnet/AspNetCore.Docs #26205) を参照してください。

ホストされた Blazor WebAssembly アプリのプリレンダリングされた WebAssembly (WebAssemblyPrerendered) または Blazor Server アプリの ServerPrerendered である、Blazor アプリの Pages/_Host.cshtml 内:

<body>
    ...

    <persist-component-state />
</body>

PersistentComponentState サービスを使用してどの状態を永続化するか決定します。 アプリが一時停止される前に、PersistentComponentState.RegisterOnPersisting によってコールバックが登録され、コンポーネントの状態が保持されます。 状態は、アプリケーションの再開時に取得されます。

詳細と例については、「ASP.NET Core Razor コンポーネントのプリレンダリングと統合を行う」をご覧ください。

その他のリソース