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

时间:2013-02-20 14:33:37

标签: c# javascript 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>

C#代码背后:

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

3 个答案:

答案 0 :(得分:8)

在javascript中this.Test()循环中未调用

for。它被称为服务器端来评估它。

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

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

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

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

答案 1 :(得分:4)

您正在将Test函数的结果作为字符串写入javascript,然后在浏览器加载页面后执行该操作。

如果你想从页面本身运行Test 3次,你需要查看各种Ajax库之一。

答案 2 :(得分:1)

代码仅在所有情况下执行一次。 JavaScript上的for循环不会执行c#3次。相反,页面只输出一次,因为<%= this.Test() %>是在服务器上一次解释的输出块。然后解释您的脚本客户端。