0

コード ビハインドでデバッグすると、「Test」メソッド内に 3 回ではなく 1 回しか入れられないのはなぜですか? C# の「Test」メソッド内で 3 回実行する必要がある JavaScript の「for ループ」があることがわかります。しかし、それは1回しか行かないのですが、これは正常ですか?javascriptの「forループ」で言ったように、「Test」メソッドを3回実行したいです。問題はどこだ ?

aspx コード:

<script>
    $(function () {
        for (var i = 0; i < 3; i++) {

            console.log("active");
            var a = '<%= this.Test() %>';
        }
    });
</script>

C# コード ビハインド:

    public string Test()
    {
        int a = 1;
        return "active";
    }
4

3 に答える 3

8

this.Test()forjavascriptのループで呼び出されていません。それを評価するためにサーバーサイドと呼ばれています。

このように見てください。あなたのJavaScriptは、レンダリング後に実際に次のように言っています。

<script>
    $(function () {
        for (var i = 0; i < 3; i++) {

            console.log("active");
            var a = 'active';
        }
    });
</script>

この理由は、ASP.NETの動作方法にあります。xhtmlとサーバー側のコードを取得し、htmlをレンダリングしてクライアントに返します。その後、クライアントはそのコードのいずれかを実行する機会があります。Javascriptはクライアント側で実行されます。

于 2013-02-20T14:37:05.500 に答える
4

関数の結果をTest文字列としてjavascriptに書き込んでいます。これは、ブラウザがページをロードすると実行されます。

ページ自体から3回実行する場合Testは、さまざまなAjaxライブラリの1つを調べる必要があります。

于 2013-02-20T14:36:45.283 に答える
1

コードは、すべての場合に 1 回だけ実行されます。JavaScript の for ループは c# を 3 回実行しません。<%= this.Test() %>代わりに、サーバー上で 1 回解釈される出力ブロックであるため、ページは 1 回だけ出力されます。次に、スクリプトのクライアント側が解釈されます。

于 2013-02-20T14:37:57.507 に答える