C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Blazorのclassについて

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■100878 / inTopicNo.1)  Blazorのclassについて
  
□投稿者/ 末永 慎一 (1回)-(2022/11/14(Mon) 11:47:26)

分類:[.NET 全般] 

VlsualStudio2022で、BlazorServerアプリの開発を始めています。
public class cls_Login
{
public static string user_name { get; set; }
}
のようなプロパティですが、プラウザでこのアプリを同時に複数開いた場合、cls_Login.user_nameの値は、どのタグも同じになってしまいますが、アプリを同時に複数開くと、開くごとに別々の値を持たせることは可能でしょうか。
ご存知の方みえましたら、アドバイスしていただけますよう、宜しくお願いいたします。
引用返信 編集キー/
■100879 / inTopicNo.2)  Re[1]: Blazorのclassについて
□投稿者/ WebSurfer (2584回)-(2022/11/14(Mon) 12:13:59)
No100878 (末永 慎一 さん) に返信

> VlsualStudio2022で、BlazorServerアプリの開発を始めています。

ターゲットフレームワークを書いてください。


> public class cls_Login
> {
> public static string user_name { get; set; }
> }
> のようなプロパティですが、プラウザでこのアプリを同時に複数開いた場合、cls_Login.user_nameの値は、どのタグも同じになってしまいます

もっと具体的に、どのようにそのプロパティを設定して、どのように値を設定しているか書いてください。
引用返信 編集キー/
■100880 / inTopicNo.3)  Re[1]: Blazorのclassについて
□投稿者/ WebSurfer (2585回)-(2022/11/14(Mon) 13:17:44)
No100878 (末永 慎一 さん) に返信

上の質問に返事がないので質問者さんのやりたいことが分かりませんが・・・

> アプリを同時に複数開くと、開くごとに別々の値を持たせることは可能でしょうか。


開くごとに毎回別の値を設定すれば可能です。例えば下記のように。

@cls_Login.user_name

@code {
    public class cls_Login
    {
        public static string user_name { get; set; } = null!;
    }

    protected override void OnInitialized()
    {
        cls_Login.user_name = DateTime.Now.ToString();
    }
}

それでは質問者さんのやりたいことを果たすために意味がなさそうな気もしますが。

引用返信 編集キー/
■100881 / inTopicNo.4)  Re[2]: Blazorのclassについて
□投稿者/ 末永 慎一 (3回)-(2022/11/14(Mon) 13:20:48)
情報不足で申し訳ありません。
ターゲットフレームワーク=.NET6.0
です。
https://localhost:7110/
上のアドレスは仮、
Edgeで上を開くと、
<input type="text" @ref="Input_Focus" @bind="cls_Login.user_name" @bind:event="oninput" class="form-control bg-white" />
のように、cls_Login.user_nameに入力できるページと、
<label>@cls_Login.user_name</label>
のように、cls_Login.user_nameの入力内容が確認できるページが選択できるとし、
Edgeの最初のタブで、cls_Login.user_nameに[abc]と入力し、
次にEdgeで新しいタブを開き、cls_Login.user_nameに[xyz]と入力し、
最初のタブに戻り、cls_Login.user_nameの内容を確認すると、[abc]できなく、[xyz]なのですが、
最初のタブでのcls_Login.user_nameは[abc]、
で新しいタブのcls_Login.user_nameは[xyz]、
のように、Edge等のタブごとで、別々にcls_Login.user_nameの内容を保持することは可能でしょうか。

引用返信 編集キー/
■100882 / inTopicNo.5)  Re[2]: Blazorのclassについて
□投稿者/ 末永 慎一 (4回)-(2022/11/14(Mon) 13:40:05)
度々追加補足をして申し訳ありません。
cls_Login.user_nameは、各razorファイルから参照したいため、
[cls_Login.cs]というようなクラスファイルで、現状は定義しています。
引用返信 編集キー/
■100883 / inTopicNo.6)  Re[3]: Blazorのclassについて
□投稿者/ 魔界の仮面弁士 (3491回)-(2022/11/15(Tue) 01:07:17)
No100881 (末永 慎一 さん) に返信
> のように、Edge等のタブごとで、別々にcls_Login.user_nameの内容を保持することは可能でしょうか。
Edge や Chrome は、それぞれのタブで同一セッションを持つ仕様なので、
別のプロファイルで開くようにするぐらいですかね。
https://social.technet.microsoft.com/Forums/ja-JP/d189ce5f-6823-4312-a013-6a7c3cba9300/edge123912603235215124751248312471125191253112434382831236726041?forum=internetexplorerja
https://answers.microsoft.com/en-us/microsoftedge/forum/all/open-a-new-session-in-edge/4f1f56ff-54ce-405e-808b-8c6131afa69a
引用返信 編集キー/
■100884 / inTopicNo.7)  Re[4]: Blazorのclassについて
□投稿者/ kiku (307回)-(2022/11/15(Tue) 09:17:11)
No100883 (魔界の仮面弁士 さん) に返信
> ■No100881 (末永 慎一 さん) に返信
>>のように、Edge等のタブごとで、別々にcls_Login.user_nameの内容を保持することは可能でしょうか。
> Edge や Chrome は、それぞれのタブで同一セッションを持つ仕様なので、
> 別のプロファイルで開くようにするぐらいですかね。
> https://social.technet.microsoft.com/Forums/ja-JP/d189ce5f-6823-4312-a013-6a7c3cba9300/edge123912603235215124751248312471125191253112434382831236726041?forum=internetexplorerja
> https://answers.microsoft.com/en-us/microsoftedge/forum/all/open-a-new-session-in-edge/4f1f56ff-54ce-405e-808b-8c6131afa69a

Web系は素人なので、わかりませんが、
検索すると下記記事がありました。
sessionStorageはタブ毎にデータを保存できるようで
この機能を使ってなんとかならないかと思いました。

https://blogs.jp.infragistics.com/entry/2022/01/20/132824
引用返信 編集キー/
■100885 / inTopicNo.8)  Re[3]: Blazorのclassについて
□投稿者/ WebSurfer (2586回)-(2022/11/15(Tue) 09:34:32)
No100881 (末永 慎一 さん) に返信

> 情報不足で申し訳ありません。

必要な情報は最初からきちんと書いておいていただきたく。

上の私の回答を書くのだって多少なりとも時間と労力を使っているのですが、無駄
になってしまいました。あなたも役に立たない回答を読むために時間と労力が無駄
になったのでは?

> Edge等のタブごとで、別々にcls_Login.user_nameの内容を保持することは可能でしょうか。

不可能です。static としているということは、下の記事の Blazor Server の図の
サーバー側(右側の ASP.NET Core)でのシングルトンすなわち全ユーザー共用です。

Blazor Server
https://learn.microsoft.com/ja-jp/aspnet/core/blazor/hosting-models?view=aspnetcore-6.0#blazor-server-1

なので、魔界の仮面弁士さんが提案している「別のプロファイルで開く」は意味が
ありません。全ユーザー共用ですから。

たとえ別のブラウザでも「別々にcls_Login.user_nameの内容を保持」はできませ
んし、別の場所から別の PC でもできません。全ユーザー共用ですから。
引用返信 編集キー/
■100886 / inTopicNo.9)  Re[4]: Blazorのclassについて
□投稿者/ WebSurfer (2587回)-(2022/11/15(Tue) 09:38:43)
No100885 訂正します。左右が反対でした。

誤: 下の記事の Blazor Server の図のサーバー側(右側の ASP.NET Core)・・・
正: 下の記事の Blazor Server の図のサーバー側(左側の ASP.NET Core)・・・
引用返信 編集キー/
■100894 / inTopicNo.10)  Re[3]: Blazorのclassについて
□投稿者/ 末永 慎一 (5回)-(2022/11/18(Fri) 12:16:38)
皆様、色々とアドバイスして頂きありがとうございました。
今後とも宜しくお願いいたします。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ