0

私は4つのビューを持つマルチビューを持っています。ビューを切り替えるには、4 つのボタンを使用し、各ボタンのクリック イベント内でマルチビューのアクティブ ビュー インデックスを関連するビューに切り替えます。

各ビューには、データをキャプチャするためのさまざまなコントロールがあります。最終ビューの下部には、すべてのデータをデータベースに書き込む送信ボタンがあります。

私が達成したいのは、ユーザーがボタンをクリックして各ビューに移動したときのタイムスタンプをキャプチャすることです (最終的にデータベースに書き込まれます)。4 つのボタンのそれぞれのクリック イベントで以下のコードを使用して、変数にタイムスタンプを割り当てることができます。

Dim phase1TimeStamp as string = DateTime.Now.TimeOfDay.ToString()

問題は、送信ボタンのクリック イベントでレコードをデータベースに書き込むときに、これらのタイム スタンプ変数に割り当てられた値が表示されないことです。

これらの変数値を送信ボタンのクリックイベントに渡す方法はありますか、またはこれを完全に達成できる別の方法はありますか? ありがとう

4

2 に答える 2

2

これを行う最も簡単な方法は、おそらく変数をセッションに保存してから取得することです。これが ASP .NET Web フォームなのか、MVC なのかはわかりませんでした。そのため、それぞれのオプションを示します。MVC には、これを実現するためのいくつかの方法があります (ViewData、ViewBag、TempData、または直接セッションに)。私は Web フォームにはあまり詳しくありませんが、少なくともセッションに保存することはできます。

Web フォーム

セッションに保存するには:

HttpContext.Current.Session("phase1TimeStamp") = phase1TimeStamp.ToString()

それを取得するには (型と VB の設定によっては、キャストする必要がある場合があります):

Dim myVar as String = HttpContext.Current.Session("phase1TimeStamp")

MVC

セッションに保存するには:

Session("phase1TimeStamp") = phase1TimeStamp.ToString()

それを取得するには:

Dim myVar as String = Session("phase1TimeStamp")

MVC に関する注意: これを複数のセッション (IE、異なるユーザー、または複数のタブを開いている同じユーザー) で機能させたい場合は、識別子 ("phase1TimeStamp") を追加する必要があります。一種の一意の識別子。

于 2013-07-17T14:22:01.053 に答える