2012-02-28 30 views
1

私は、従来のASPアプリケーションをASP.Netに変換する過程にあり、グローバル変数(またはページスコープ変数)を扱うためにレンガの壁に当たっています。注意として、アプリケーションはHTMLを構築しないという点で典型的なものではありません。代わりに、AJAXリクエストを取得してJSON文字列を返します。そのため、asp.netの機能はほとんど使用されません。グーグルが私に答えにつながっていない、長い間、初めて。我々はvariables.aspで定義されたグローバル変数、例えば数を使用するASPコードでASP.Netグローバル/ページスコープ変数

<% 
dim lId 
%> 

このASPは、その後のすべてのページに含まれています。これらの変数を参照する他の多くのインクルードファイルが、ページ自体とともに存在します。しかし

<SCRIPT LANGUAGE="VBScript" RunAt="Server"> 
shared dim lId as integer 
</SCRIPT> 

、私はこの変数は、それが.aspファイルで働いていた方法よりもはるかに多くの「グローバル」であることを認識し、そしてこと:asp.netについては

は、私が見つけることができる最も近いvariables.aspx持っていることですそれはスレッドの問題などを引き起こす可能性があり、それらは効果的に私が後にしているのではないApplication()オブジェクトを使うように動作します。

私が必要とするのは、他のインクルードで参照できる変数を宣言でき、スコープと有効期間がそのページの処理のみであるベースページです。

この段階で、私は考えることができる唯一のことは、セッション変数を使用すると、各処理の最後にそれらをクリアすることですが、あなたが作成することができ、このような変換

+0

これはasp.net webforms appまたはasp.net mvc appですか? – lomaxx

答えて

0

の仕事/問題を躊躇していますこれらの静的変数を格納するasp.netプロジェクトのクラス。設定パラメータの場合は、web.configファイルに書き込む必要があります。

+0

迅速な対応をありがとう。これらは構成パラメーターではなく、静的ではありません。これらは、あなたが変更しているレコードのIDを追跡するために使用されます。レコードの追加/変更/削除など、各投稿ごとに異なるすべてのものです。クラスを作成すると、私は簡単に実験しましたが、それは鶏肉と卵になりました - クラスのインスタンスを保持するためのグローバル変数が必要でしたか? – Chudles

+0

グローバル変数のように聞こえません。たぶん、ビューステートを使用してそれらを格納する必要があります。 – jmaglio

0

は、私は、次のようなものをやって終わるかもしれないように見えます:

shared dim gv as New GlobalVariables 

public class GlobalVariables 
    public property Id as integer 
     Get 
      Id = cint(HttpContext.Current.Items("id")) 
     End Get 
     set (ByVal aiValue as integer) 
      HttpContext.Current.Items("id") = aiValue 
     End Set 
    end property 
end class 

はその後、これまで私は現在、私は「gv.Id」と交換する必要があり、「蓋」を参照しています。

gvはまだグローバルになりますが、current.itemsで探していると、スレッドの問題はありません。

関連する問題