私はc#メソッドを呼び出すjQuery関数を書いています。asp.netのJQuery関数に問題がありますか?
関数が成功を返した場合は、c#クラスのカウンタ変数のインクリメントを行うc#コードから別のメソッドを呼び出します。
私は1分ごとにカウンタを自動的にインクリメントしたいと思っていましたが、これは私が気づいたものです。私は自分のC#クラスのCounter()関数にブレークポイントを設定しました。ページが読み込まれ、Counterメソッドが呼び出されると、私はデバッグを続け、問題なく動作することを確認しますが、カウンタ変数が値 "2"に達すると、F10を押してCounterメソッド()に入ると、メソッドの終わりに達し、カウンタ変数を2ずつ増やしてから、ここから状況が悪化します。
私は何が間違っているのだろうか?誰かが私のスクリプトを見直して、エラーの原因となっているものについて私に提案してくれますか?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Dtata.aspx.cs" Inherits="Dtata" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="/scripts/jquery-3.1.1.min.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<script type="text/javascript">
klm();
function klm() {
$.ajax({
type: "POST",
url: "Dtata.aspx/Hello",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{ 'name' : 'hello' }",
success: function(result) {
console.log(result.d);
Counter() //<-- CALL OTHER AJAX METHOD TO INCREASE COUNTER ON BACK END
},
error: function(result) {
alert(result.responseText);
}
});
}
function Counter() {
$.ajax({
type: "POST",
url: "Dtata.aspx/Counter",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
console.log(result.d);
},
error: function(result) {
alert(result.responseText);
}
});
setInterval(Counter, 60000);
}
</script>
</form>
</body>
</html
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Dtata: System.Web.UI.Page {
public static int counter = 0;
protected void Page_Load(object sender, EventArgs e) {
}
[WebMethod]
public static string Hello(string name) {
return name;
}
[WebMethod]
public static int Counter() {
counter = counter + 1;
Console.WriteLine("I have been called" + counter);
return counter;
}
}