0

問題を解決するために使用できるもの: C#ASP.NETJavascript

2 つの Web ページ: Index.aspx - Work.aspx

Index.aspx : Work.aspx にリダイレクトするリンクをクリックすると、彼らが実行しようとしている作業に関する統計と情報。

Work.aspx : クライアントとの作業を開始します。

したがって、私が達成する必要があるのは、Work.aspx の 1 つのインスタンスです。彼らが Work.aspx を操作している間、Index.aspx はまだ開いているため (データなどを調査する必要があります)、Work.aspx のリンクをクリックすると、別のインスタンスを開くことができ、それは私が望むものではありません。

Mutexで見つけたものはすべてwinformに基づいているため、これを達成するための最良の方法はわかりません。(たまたま、ウェブフォームでミューテックスを処理するための情報へのリンクがある場合は、そこから開始できるかもしれませんが、まだ見つけていません)

どんな助けでも大歓迎です。ありがとう。

編集。 Work.aspx はポップアップであるため、従業員は両方の Web フォームを同時に開いています。

4

2 に答える 2

3

これを行う方法はありません。Web アプリケーションは本質的にステートレスであり、ユーザーとの各対話は個別の要求と応答のペアで構成されます。asp.net は、リクエストごとに Web フォームの新しいインスタンスを作成し、それを使用してリクエストを処理し、その後削除します。

では、正確には何のためにそれが必要なのでしょうか? ほとんどの場合、複数のページが存在する可能性がありますが、それでも同じデータです。

于 2012-08-09T13:38:49.033 に答える
2

ご質問の内容が理解できた場合は、Hyperlink.Targetプロパティを使用して、Work.aspx を常に同じ名前のウィンドウで開いてみてください。

<asp:Hyperlink runat="server" ... NavigateUrl="Work.aspx" Target="work" ... />

コメントに応じて更新

必要な情報を Work.aspx に入力するために、いくつかのことをトリガーします...

あなたがする必要があるのは、Work.aspxサーバー側の状態を「記憶」することSessionです。たとえば、状態データを(またはデータベースなどの他の場所に)保存します。次に、Work.aspx が要求されるたびに、適切な状態のバージョンをレンダリングします。

今考えられるのは、最初に work.aspx を開いたときです。セッション変数を true に設定します。そして、次回 START-WORKING をもう一度押すたびに、そのセッション変数を事前にチェックして、許可されているかどうかを確認してください。このジョーのようなものを指していましたか?

新しいWork.aspxを開くことは常に「許可」されるべきだと思います。結局、ユーザーは以前の Work.aspx ウィンドウを閉じた可能性があり、このサーバー側についてはわかりません。ユーザーが常に「作業を開始」できるようにする必要がありますが、Work.aspx をサーバー側 (セッションなど) に保存した最新の状態で表示する必要があります。

于 2012-08-09T13:41:25.887 に答える