jquery 1.7.1およびjson2.jsjquery ajaxを使用してaspxページのwebmethodに複雑なオブジェクトを送信する
を使用して、aspxページ(asp.net 4.0)のWebMethodに複雑なオブジェクトを送信しようとしています。私が達成したのは、同じページ上の複数のパラメータを複数のWebメソッドに送信することです。代わりに、これらのパラメータをオブジェクトにラップします。
は、だから私のWebMethod属性は、次のようになります。
[WebMethod]
public static string ValidateControlInput(PairValue pair)
{
var result = pair;
return String.Format("Valid");
}
私のjavascriptのメソッドは次のようになります。
$(document).ready(ValidateInput);
function ValidatePairInput(codeId, descriptionId, labelId) {
var pair = CreatePairObject(codeId, descriptionId);
SendDataToValidate(pair, labelId);
}
function SendDataToValidate(dataToValidate, controlId) {
$.ajax({
type: 'POST',
url: 'NewDocument.aspx/ValidateControlInput',
contentType: 'application/json; charset=utf-8',
data: dataToValidate,
dataType: 'json',
success: function (data, textStatus) {
var result = data.d;
DisplayValidationMessage(controlId, result);
}
});
}
function DisplayValidationMessage(controlId, result) {
$('#' + controlId).text(result);
}
function CreatePairObject(codeId, descriptionId) {
var pair = { };
pair.Code = $('#' + codeId).val();
pair.Description = $('#' + descriptionId).val();
var DTO = { 'pair': pair };
return JSON.stringify(DTO);
}
悲しいことに、これは動作しません。私はwebmethodにブレークポイントを設定しましたが、決して打撃を受けません。
私はjavascriptのメソッドこれで 'CreatePairObject' 内のコードを交換する場合:
function CreatePairObject(codeId, descriptionId) {
return JSON.stringify({ code: $('#' + codeId).val(), description: $('#' + descriptionId).val() });
}
及びこれにWebMethod属性:
[WebMethod]
public static string ValidateControlInput(string code, string description)
{
return String.Format("Valid");
}
をそれは魔法のように動作します。それで誰も私にこれを手伝ってもらえますか?どんな助けでも大歓迎です!