Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Jquery/Javascript背后的代码访问静态属性值_Javascript_C#_Jquery_Asp.net_Ajax - Fatal编程技术网

从Jquery/Javascript背后的代码访问静态属性值

从Jquery/Javascript背后的代码访问静态属性值,javascript,c#,jquery,asp.net,ajax,Javascript,C#,Jquery,Asp.net,Ajax,我必须将最大值和百分比值读入jquery函数。我已经尝试将这些值读入页面加载中的隐藏变量和会话变量,页面加载总是返回0。 这些是我的财产: public static int Max { get; set; } public static int Percent { get; set; } 这是我的代码: [WebMethod] public static string Test() { var y = 0;

我必须将最大值和百分比值读入jquery函数。我已经尝试将这些值读入页面加载中的隐藏变量和会话变量,页面加载总是返回0。 这些是我的财产:

    public static int Max { get; set; }
    public static int Percent { get; set; }
这是我的代码:

      [WebMethod]
      public static string Test()
      { 
          var y = 0;
          var max = 100000;
          Max = max;
          for(int i = 0; i < max; i++)
          {
              y++;
              Percent = y++; 
          }
          if (y > max)
              return "Success";
          else
            return "Fail";
      }
[WebMethod]
公共静态字符串测试()
{ 
var y=0;
var max=100000;
Max=Max;
对于(int i=0;i最大值)
返回“成功”;
其他的
返回“失败”;
}
这是我点击按钮时的ajax调用。我试图通过另一个函数读取每个I的最大值和百分比值。我不知道如何将这些值调用到另一个函数中

<asp:Button ID="btnGetData" runat="server" Text="Get Data" />

   $(document).ready(function () {
     $$('btnGetData').click(function () {
         function readValues();
         $.ajax({
             type: 'POST',
             url: 'Test.aspx/Test',
             data: "{}",
             contentType: "application/json; charset=utf-8",
             dataType: "json",
             async: true,
             success: function (Result) {
                 alert(Result.d);
             },
             error: function (Result) {
                 alert('Error!');
             }

         });
     });
 });
function readValues(){
 var t = <%= Max%>;
 var p = <%= Percent%>;  //This has to be updated every few seconds until 
                             //the for loop is finished.
}

$(文档).ready(函数(){
$$('btnGetData')。单击(函数(){
函数readValues();
$.ajax({
键入:“POST”,
url:'Test.aspx/Test',
数据:“{}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
async:true,
成功:功能(结果){
警报(结果d);
},
错误:函数(结果){
警报('错误!');
}
});
});
});
函数readValues(){
var t=;
var p=;//必须每隔几秒钟更新一次,直到
//for循环完成了。
}

我想你想要表达的与这个问题类似:

基本上,您的选择是:

  • 重新设计服务器端代码,使操作从第一次调用开始(并立即返回),然后前端可以调用不同的函数/端点,查看当前进度并报告(可能是每秒使用一次计时器或其他方法)
  • 使用某种东西来启用双向通信(例如信号器),以便服务器可以向客户端报告其进度

对于StackOverflow来说,这两个问题都可能有点过于复杂,无法给出一个简单的答案。我建议你试着把这些建议放在一起,如果你有问题的话再回来。

你的最大值和百分比将在页面加载和显示时得到评估。它们不会以您希望的方式动态更新-这就是为什么它们为零,因为这是它们的初始值。一种方法是将服务器端的处理移动到一个单独的线程/进程中,并有一个单独的Ajax调用来报告进度,然后前端重复调用。
/这必须每隔几秒钟更新一次,直到//for循环完成。
这是不可能的。C#代码在服务器上运行,JS代码在浏览器中运行。在AJAX“success”回调中,当C#代码完全处理完您告诉它的所有内容后,您将从C#代码中得到一个结果。这段代码看起来像是一些虚拟/演示代码。这里真正的用例是什么?也许有另一种方法可以实现你的实际目标。