0

ASP.NET では、定義済みの js 関数を次のように呼び出しています。

Page.ClientScript.RegisterStartupScript(GetType(), "", "JSFuncNameHere();", true);

私は疑問に思う:

  • Page.ClientScript.CallJSScript("someJSFunc"); のような名前のメソッドがないのはなぜですか。
  • なぜアッパーメソッドはリフレクションメソッド GetType() を必要とするのですか? 実行時に何かが定義されていませんね。
  • 2 番目の引数が必要なのはなぜkeyですか? 私がテストしたように、空のままにしておくと、既存の JS 関数が呼び出されます。
4

1 に答える 1

1
  • 次のような名前のメソッドがないのはなぜですか。Page.ClientScript.CallJSScript( "someJSFunc");

おそらくこれはより一般的な解決策であるため、2文字を追加するだけで同じ結果が得られ、必要に応じて引数などを追加できます。

  • なぜupperメソッドはリフレクションメソッドGetType()を必要とするのですか?実行時に何かが定義されていませんね。
  • なぜ2番目の引数キーが必要なのですか?テストしたので、空のままにして、既存のJS関数を呼び出すことができます。

これらの両方の理由は同じです。メソッドは、同じスクリプトを複数回実行したかどうかを検出します。そのような場合は、1回だけ呼び出します。2つの引数は、重複を識別する方法です(別のライブラリの別のクラスが同じキーを使用している可能性があるため、キーでは不十分です)。したがって、スクリプトが次の場合に実行されるようにするには、独自のクラスのタイプを渡す必要があります。あなたはそれをしたいです。

于 2013-03-06T21:00:16.323 に答える