jQueryを使用してajaxリクエストを実行する場合、サーバーに送信されるデータに変数を追加する方法がわかりません。静的文字列を使用してリクエストを送信すると、正常に機能します。
$("#btnSubmit").click(function () {
var inputtext = $("#txtInput").val();
$.ajax({
type: "POST",
url: "Webform1.aspx/Function",
data: "{'ans':'hello'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
}
});
});
上記は.net関数を呼び出してから、応答文字列を含むmsgboxを生成します。
ハードコードされた文字列'hello'を上記のinputtext変数などの変数に置き換えるにはどうすればよいですか。
以下は機能せず、json解析に関連する500エラーが発生します。
{'ans':inputtext}
{ans:inputtext}
{"ans":inputtext}
(ansは関数パラメーターの名前です)
編集:
リクエストサーバー側を処理するには、関数に.net WebMethod属性を使用します。これは、上記の例でハードコードされた文字列リクエストで機能しますが、データを使用して変数が渡されると、htmlページ全体を返します。{ans:inputtext} :
[System.Web.Services.WebMethod]
public static string Function(string ans)
{
return ans;
}