从javascript在时间间隔内调用C#方法

从javascript在时间间隔内调用C#方法,javascript,c#,jquery,asp.net,json,Javascript,C#,Jquery,Asp.net,Json,我正在从javascript调用一个C#方法,该方法将返回一个Json字符串。我在文本框中写JSON值。方法将数据表转换为JSON。到目前为止,它工作正常 函数初始化(){ //从方法返回“[{\“TAG1\”:100,\“TAG2\”:100}]” var data=JSON.parse(“”); $('#TextBox1').val(数据[0].TAG1); $('#TextBox2').val(数据[0].TAG2); } 将Web服务(.asmx)添加到项目中 然后将您的方法作为We

我正在从javascript调用一个C#方法,该方法将返回一个Json字符串。我在文本框中写JSON值。方法将数据表转换为JSON。到目前为止,它工作正常


函数初始化(){
//从方法返回“[{\“TAG1\”:100,\“TAG2\”:100}]”
var data=JSON.parse(“”);
$('#TextBox1').val(数据[0].TAG1);
$('#TextBox2').val(数据[0].TAG2);
}
将Web服务(.asmx)添加到项目中

然后将您的方法作为WebMethod添加到服务:

namespace YourName.Space
{
 //Here is some auto-generated stuff like [WebService(Namespace = "http//tempuri.org")]
 public class MyWebsevice : System.Web.Services.WebService
 {
  [WebMethod]
  public string ConvertDataTabletoString()
  {
   // your stuff
  }
 }
}
在您的页面上注册Web服务:

<asp:ScriptManager ID="ScriptManager" runat="server">
 <Services>
  <asp:ServiceReference Path="~/MyWebsevice.asmx" />
 </Services>
</asp:ScriptManager>

调用

“我正在从javascript调用一个C方法。”不,你没有。当请求页面时,您正在服务器上运行一个C#方法,然后,一旦页面文本(嵌入该方法的输出)进入客户端,浏览器就会运行JavaScript代码,读取嵌入页面中的文本。@T.J.Crowder您就遇到了问题。完成此任务的可能解决方案是什么?创建一个端点并使用ajax调用该方法,然后再次设置值。另一种可能的解决方案是设置一个更新面板,并在其上设置一个计时器,以刷新不会传递到文本框的值,我不推荐这样做,但我假设您使用的是WebForms。它显示空值。是否需要更改任何内容?是否调试了服务,JS?Web服务返回正确的json值。但是JS没有收到它,它是进入成功还是失败?result的值是多少?LoadMyData函数未触发..,如果可能,请查看我的代码。。
<script type="text/javascript">
    $(document).ready(function(){
     setInterval(LoadMyData, 3000);
    });

    function LoadMyData() {
     YourName.Space.MyWebsevice.ConvertDataTabletoString(onSuccess, onFailure)
    }

    function onSuccess(result) {
     var data = JSON.parse(result);
     $('#TextBox1').val(data[0].TAG1);
     $('#TextBox2').val(data[0].TAG2);
    }

    function onFailure(result, userContext, methodName) {
     // do something if necessary.
    }
</script>
var var1;
function myOnLoadFunction(){
 var1= setInterval(LoadMyData, 3000);
}