1

コードが以下のスニペットに似ている JavaScript 関数内の ac# 変数値にアクセスしたいと思います。

@{ var i=0; }

....

<script type="javascript">

function MyObjects(e) {

for (j = 0; j <= @i; j++) {....}

</script>

..... { i=@i+1;}

4

2 に答える 2

3

C# コードはサーバー側で実行されて HTML をレンダリングし、生成された JavaScript を含む HTML はクライアント ブラウザーで実行されるため、JavaScript から C# 変数に "アクセス" することはできません。

クライアントで実行される JavaScript コードに C# 変数の値をレンダリングする場合、コードは

for (j = 0; j <= @i; j++) {....}

それだけです。

ただし、期待するなら

{ i=@i+1;}

クライアントで実行してサーバーの状態に影響を与えることはできませんが、そうではありません。

解決

HTML ページをサーバーに戻さずに JavaScript からサーバー上の何かの状態を更新する必要がある場合は、Ajax コールバックを使用してそれを実行できます。

于 2012-07-30T15:34:22.790 に答える
1

C#/Razor の値を文字列として簡単に取得できます。

<script type="text/javascript">
    var i = parseInt("@i");
</script>
于 2012-07-30T15:38:29.643 に答える