Razor页面javascript只执行一次c#

Razor页面javascript只执行一次c#,javascript,c#,azure,razor,Javascript,C#,Azure,Razor,我正试图使用javascript循环从我的c#代码中更新数据。但它只执行一次c#方法 我上了一堂测试课: public class testClass { public static int result; public static int nb1; public static int add() { result = result + 1; return result; } }

我正试图使用javascript循环从我的c#代码中更新数据。但它只执行一次c#方法

我上了一堂测试课:

public class testClass
{
    public static int result;
    public static int nb1;

    public static int add()
    {
        result = result + 1;    
        return result;            
    }    
}
在我的javascript中,我制作了以下内容:

<script>    
    setInterval(Testing,3000);
    nb1 = 0;
    function Testing() {                
      nb1 = nb1 + 1; //this is to test that the function really restart after 3 seconds
      document.getElementById('label').innerHTML = nb1 + " | " + @testClass.add(); ; // calling my c# method and print into a html label
    }

设置间隔(测试,3000);
nb1=0;
函数测试(){
nb1=nb1+1;//这是为了测试函数在3秒后是否真正重新启动
document.getElementById('label').innerHTML=nb1+“|”+@testClass.add();//调用我的c#方法并打印到html标签中
}

并在页面上显示:

正如您可以看到的数字所示,javascript函数是否在3秒后重新启动,但c#方法没有更新


您有什么解决方案吗?

您似乎不太了解HTML、JS和C#是如何协同工作的。 当向服务器发出请求时,它将执行计算以返回文档。本文档以HTML格式呈现,并添加了JS形式的逻辑来补充它

使用Razor时,您可以有效地使用C来帮助构建文档,但不能在运行时使用。如果希望前端文档能够与后端C#代码交互,那么必须使用套接字(例如signar)或AJAX(这是网页和后端之间异步通信的最主要方式)

我将与您一起逐步完成代码,以帮助您理解

您的razor页面将开始构建。在某一点,它将检测到以下线路:

document.getElementById('label').innerHTML = nb1 + " | " + @testClass.add(); ; // calling my c# method and print into a html label
在这里,它将调用C#方法,将其转换为值,并将值放入JS代码中,因此当文档发送到客户端(您的webbrowser)时,代码将如下所示:

document.getElementById('label').innerHTML = nb1 + " | " + {THE CALCULATED VALUE} ; // calling my c# method and print into a html label
我会让你参考这个。解释如何做你想做的事情