用于带有C#代码隐藏方法的循环

本文关键字:方法 循环 隐藏 代码 用于 | 更新日期: 2023-09-27 18:00:13

当我在代码后面调试时,它只允许我进入"Test"方法一次,而不是三次,为什么?我看到我有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";
    }

用于带有C#代码隐藏方法的循环

在javascript中的for循环中没有调用this.Test()。正在调用服务器端对其进行评估。

这样看。您的javascript在渲染后确实显示了以下内容:

<script>
    $(function () {
        for (var i = 0; i < 3; i++) {
            console.log("active");
            var a = 'active';
        }
    });
</script>

原因在于ASP.NET的工作方式。它获取您的xhtml和服务器端代码,并将html呈现给客户端。然后客户端就有机会执行它的任何代码。Javascript在客户端执行。

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

如果您想从页面本身运行Test 3次,那么您需要查看各种Ajax库中的一个。

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