Blazorで「サーバーに再接続できませんでした」というテキストを変更するにはどうすればよいですか?


10

Blazorサーバー側を使用しています。

Blazorアプリがリモートサーバーへの接続を切断すると、次のように表示されます。

ここに画像の説明を入力してください

上記の画像のテキスト(「サーバーに再接続できませんでした...」など)を変更したいと思います。

私の国の言語に変更したいと思います。

プロジェクトのファイルは見つかりましたが、何も見つかりませんでした。

どうすれば変更できますか?ありがとうございました。

回答:


14

Blazorアプリは、id =のhtml要素があるかどうかをチェックします{dialogId}ページにあるします。

  1. そのような要素が存在しない場合は、デフォルトのハンドラーを使用してメッセージを表示します。
  2. この要素が存在する場合、この要素の classようになります。
    • として設定され components-reconnect-showサーバーへの再接続を試みるときのに、
    • として設定され components-reconnect-failedサーバーへの接続に失敗したときのようにします。
    • components-reconnect-refusedサーバーが接続をアクティブに拒否している間にブラウザがサーバーに到達するかのように設定します

デフォルトでは、dialogIdありますcomponents-reconnect-modal。したがって、ページに要素を作成し、CSSを使用してコンテンツとスタイルを自由に制御できます。

デモ:

たとえば、コンテンツの3つの部分を作成して、内に表示しますPages/_Host.cshtml

<div id="components-reconnect-modal" class="my-reconnect-modal components-reconnect-hide">
    <div class="show">
        <p>
            This is the message when attempting to connect to server
        </p>
    </div>
    <div class="failed">
        <p>
            This is the custom message when failing 
        </p>
    </div>
    <div class="refused">
        <p>
            This is the custom message when refused
        </p>
    </div>
</div>

<app>
    @(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
</app>

<script src="_framework/blazor.server.js"></script>

次に、スタイルを制御するCSSを追加します。

<style>
    .my-reconnect-modal > div{
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1000;
        overflow: hidden;
        background-color: #fff;
        opacity: 0.8;
        text-align: center;
        font-weight: bold;
    }
    .components-reconnect-hide > div
    {
        display: none;
    }

    .components-reconnect-show > div
    {
        display: none;
    }
    .components-reconnect-show > .show
    {
        display: block;
    }

    .components-reconnect-failed > div
    {
        display: none;
    }
    .components-reconnect-failed > .failed
    {
        display: block;
    }

    .components-reconnect-refused >div
    {
        display: none;
    }
    .components-reconnect-refused > .refused
    {
        display: block;
    }
</style>

最後に、接続しようとしたとき、または接続に失敗したときに、次のメッセージが表示されます。

ここに画像の説明を入力してください


これは良い情報ですが、どこでどのマイクロソフトドキュメントに文書化され、こののか?
アーロンヒュードン


ありがとう。奇妙なことに、それをホスティングモデルの
アーロンヒュードン

@AaronHudonは、Blazor Server Sideモデルを使用した場合にのみ発生するためです:)
itminus

1
この情報はここに移動したようです
drs9222

9

物事のJavaScript側では、Blazorはwindow.Blazorオブジェクトを介して小さなAPIを公開します。

このAPIの一部は defaultReconnectionHandler、再試行回数などのさまざまなオプションの設定など、再接続エクスペリエンスをカスタマイズできる。

ただし、ロジックを表示するためにロジックを交換することもできます。 ReconnectionDisplay

単純な実装は次のようになり、プロセスを制御できるようになります。

function createOwnDisplay() {
    return {
        show: () => { alert("put code that shows a toast , ui, or whaterver here"); },
        hide: () => { console.log('foo'); },
        failed: () => { console.log('foo'); },
        rejected: () => { console.log('foo'); }
    };
}

Blazor.defaultReconnectionHandler._reconnectionDisplay = createOwnDisplay();

まあ、それもそれを解決する方法です。しかし、私は@itminusの方が好きです。どうもありがとうございました。
Melon NG

もちろん、それはあなたのユースケースに依存します。より詳細な制御が必要な場合(接続が失敗したときにカスタムコードを実行するなど)は、APIを使用する方法があります。UIを交換するだけの場合は、@ itminusの提案を使用できます。
Postlagerkarte、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.