0

script.jsをフォルダーscriptに入れます。そのスクリプトで、Webフォーム(例)からC#変数を管理したいと思います<%= myString = 3 %>

これは不可能だと思いますが、何らかの方法でできるのでしょうか。ありがとうございました

4

2 に答える 2

2

Javascriptはクライアント側で実行されるコードであり、C#はサーバー側で実行されるコードです。したがって、「変数」を厳密に表示することはできません。これらは2つの完全に異なるコードプラットフォーム/ランタイムであり、2つの異なるコンピューターで実行されているためです。ただし、いくつかの異なる方法でそれらの間のデータをマーシャリングすることができます。

  • Webサービスを作成し、AJAX経由で呼び出します
  • ページのコントロールまたはURLにデータを入力し、Javascript DOM API(またはjQueryなどのラッパーライブラリ)を介してクエリします。

2番目の例(あなたが尋ねたので):

<!-- Somewhere in your page -->
<span style="visibility:hidden" id="myData"><%= myString %></span>

// In Javascript, using jQuery:
var myData = $('#myData').text();
于 2012-06-12T09:30:28.643 に答える
2

変数がページ上の特定の要素に直接関連している場合は、HTML5data-*属性を使用して値を格納することを確実に検討する必要があります。変数がアンカー要素に関連していると想像してください。次のように出力できます。

<a href="something" id="myLink" data-my-var="5">Blah</a>

次に、そのようにjQueryを使用して変数にアクセスできます$("#myLink").data("myVar")(キャメルケースに注意してください)。jQueryは値を正しいタイプに変換しようとします。生の値が必要な場合は、attrこのようなjQueryメソッドを使用して$("#myLink").attr("data-my-var")ください(属性名は変更されていないことに注意してください)。

または、サーバー側のコードで次の手順を実行して、ページに出力することもできます。

<script type="text/javascript">
   var myVar = <%= someVariableToOutput %>;
</script>

このコードが依存スクリプトの上に出力されている限り、他のJS変数と同じようにアクセスできます。

最後に、ページの読み込み中にAJAXリクエストを実行し、その方法で変数を取得できます(ただし、データがメインリクエスト中にのみ利用可能な場合、これは適用されない場合があります)

お役に立てば幸い

于 2012-06-12T09:37:02.947 に答える