プロジェクト開発プロセスでは、多くの場所でフロントエンドとバックエンド間のデータ対話が必要になります。その代表的な方法としては、コントロールの AutopostBack プロパティの使用、ボタン送信フォームなどが挙げられます。ただし、これらは条件付きです。AutoPostBack はリアルタイムですが、ボタン送信フォームはリアルタイムのデータ インタラクションを実現できません。もちろん、フォアグラウンドとバックグラウンド間のデータ対話に関しては、Ajax がフォアグラウンドとバックグラウンド データ間の非同期対話を実現し、リアルタイムかつ部分的な更新を保証することを欠かすことはできません。ただし、一部のデータは非同期対話を必要としません。たとえば、対話型データが次の実行ステップの条件である場合、プログラムはフォアグラウンド データとバックグラウンド データの間の対話が完了するまで待機してから続行する必要があります。実行する。したがって、js とバックグラウンドデータの間のやり取りの方法を習得する必要があります。
方法 1
バックグラウンドメソッド:
// WebMethod
[System.Web.Services.WebMethod]
< ;SPAN style="COLOR: #ff0000">// フロントデスクによって呼び出されるメソッドは public かつ static でなければならないことに注意してください
public static string Say(string name)
{
string result = "Hello:" name;
return result
}
フロントエンド js:
メソッド 2 バックグラウンド メソッド:
保護された文字列 Say(string strCC)
{
strCC = "こんにちは! " strCC;
return strCC;
}
フロントエンド js:
function Show()
{
var v = "中国"
var s = '<%=Say(" ' v '") %>'; // こんにちは! " V "
alert(s);
}
方法 3 バックグラウンド メソッド:
// WebMethod として識別する必要があります
[System.Web.Services.WebMethod]
// フロント デスクによって呼び出されるメソッドは public かつ static でなければならないことに注意してください
public static string Say( string name)
{
string result = "Hello:" name
return result;
フロントエンド js :
コードをコピー コードは次のとおりです:
メソッド 1 と 3 では、System.web.Services.webmethod を識別することで、クライアント JS 関数を通じてメソッドを呼び出すことができることを宣言でき、バックグラウンド メソッドは public として宣言する必要があります。静的メソッドは static として宣言する必要があるため、両方のメソッドに制限があります。つまり、静的メソッドでは静的メンバー変数のみにアクセスできます。したがって、これら 2 つの方法でバックグラウンド メソッドを呼び出したい場合、バックグラウンド メソッドでは非静的メンバー変数にアクセスできません。 方法 2 では、バックエンド メソッドに制限はありませんが、フロントエンドが呼び出されるとき、<%=%> は読み取り専用であるため、フロントエンドからバックエンドに渡されるパラメーターは無視されます。つまり、バックグラウンドからは取得できません。したがって、方法 2 は、バックグラウンド メソッドを呼び出して処理し、クライアントに返して使用する場合には適していますが、バックグラウンドで使用するためにデータをバックグラウンドに送信する場合には適していません。