【问题标题】:For Loop With C# Code Behind Method使用 C# 代码隐藏方法的 For 循环
【发布时间】:2013-02-20 14:33:36
【问题描述】:

当我在后面的代码中调试时,它让我只进入“测试”方法一次,而不是三次,为什么?我看到我有 javascript“for 循环”,它应该在 C#“测试”方法中运行三遍。但它只去了一次,这正常吗?正如我在javascript“for循环”中所说的那样,我想通过“测试”方法三次。问题出在哪里?

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";
    }

【问题讨论】:

  • 您的“仅 1 次”基于什么?因为它看起来会运行 3 次,但 a 将永远是 1

标签: c# javascript asp.net for-loop


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-09
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 2020-01-11
        • 2015-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多