1

私は、クラシック ASP プロジェクトから進化した ASP.net 3.5 プロジェクトに取り組んでいます。いくつかのページに含まれており、適切に更新されていない 2 つの古い Javascript ファイルがあります。Javascript には ASP.Net サーバー タグが含まれており、ファイルは .js.aspx 拡張子で保存されます。

埋め込まれた VB.net は、クラス内の共有 (静的) プロパティと ASP.net セッション変数を参照します。問題のクラスは Javascript ファイルにインポートされていないため、Visual Studio はページをコンパイルできません。ただし、これらのファイルを含むページを読み込むと、問題なく動作します。

これらのファイルを .Net 標準に更新する正しい方法は何ですか? Javascript ファイルにサーバー タグを含めないようにする必要がありますか。

ありがとう。

質問に答えるために編集:

ファイルは <!-- #include virtual="myFile.js.aspx" --> スクリプト タグ内に含まれています。コンパイラ エラーは、「名前 'MyClass' が宣言されていません」です。MyClass は参照されているクラスです。

4

2 に答える 2

2

JS関数内でサーバー側のデータが必要な場合は、別の方法をお勧めします。

たとえば、次のようなものがあるとします。

function Foo() {
  var f = "hello <%=MyClass.LoggedUser%>";
}

代わりにこれを次のように変更します。

function Foo() {
  var f = "hello " + _loggedInUser;
}

次にPage_Load、ページ自体の場合は、次のようなコードを追加します。

Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "logged_user", "var _loggedInUser = '" + MyClass.LoggedUser + "'; ", true);

これは値をうまく送信します、そして私の意見では、JSコードに直接それを持っているよりも正しいです。

于 2011-03-17T14:07:27.640 に答える
1

クラスが名前空間にある場合など、クラスを完全に修飾します

YourCompany.YourApp

次に、.js.aspx ファイルでYourCompany.YourApp.MyClass

そして、これが存在する DLL への参照を追加したことを確認してください。

また、ASP スタイルのインクルードは ASP.Net では機能しないことに注意してください。

于 2011-03-17T14:01:04.567 に答える