从Jquery/Javascript背后的代码访问静态属性值
我必须将最大值和百分比值读入jquery函数。我已经尝试将这些值读入页面加载中的隐藏变量和会话变量,页面加载总是返回0。 这些是我的财产:从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;
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#代码中得到一个结果。这段代码看起来像是一些虚拟/演示代码。这里真正的用例是什么?也许有另一种方法可以实现你的实际目标。