对于循环使用C#代码隐藏方法

The*_*mpp 0 javascript c# asp.net for-loop

当我在代码后面调试它让我进入"测试"方法只有一次,而不是三次,为什么?我看到我有javascript"for loop",它应该在C#"Test"方法中进行三次.但这只是一次,这是正常的吗?我想在javascript"for loop"中说三次"Test"方法.问题出在哪儿 ?

aspx代码:

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

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

C#代码背后:

    public string Test()
    {
        int a = 1;
        return "active";
    }
Run Code Online (Sandbox Code Playgroud)

Kha*_*han 8

this.Test()没有在你的for循环中调用javascript.它被称为服务器端来评估它.

以这种方式看待它.渲染后你的javascript确实说了以下内容:

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

            console.log("active");
            var a = 'active';
        }
    });
</script>
Run Code Online (Sandbox Code Playgroud)

原因在于ASP.NET的工作方式.它需要你的xhtml和服务器端代码并​​呈现html吐回客户端.然后客户端有机会执行其任何代码.Javascript在客户端执行.