以下のjqueryを使用しています。配列paramlistを以下の適切なWebメソッドに送信しようとしています。私はここで何が欠けていますか?jqueryを使用してasp.net Webメソッドにパラメータ配列を送信する方法
<script type="text/javascript">
$(document).ready(function() {
var slider = $('.slider').slider({
range: "min",
min: 0,
max: 100,
change: function (e, ui) {
var paramList = new Array();
var values = $('.slider').each(function() {
var s = $(this);
var aType = s.attr('itemName');
var point = s.slider("option", "value");
paramList.push(aType);
paramList.push(point);
});
CallPageMethod("SliderChanged", paramList, success, fail);
// $("#img1").fadeOut();
// alert("done");
},
slide: function (e, ui) {
var point = ui.value;
$("#selected_value").html(point);
// var width = 100 - point;
// $("#range").css({ "width": point + "%" });
}
});
function CallPageMethod(methodName, paramArray, onSuccess, onFail) {
//create list of parameters in the form
//{"paramName1":"paramValue1","paramName2":"paramValue2"}
var paramList = '';
if (paramArray.length > 0) {
for (var i = 0; i < paramArray.length; i += 2) {
if (paramList.length > 0) paramList += ",";
paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
}
}
paramList = '{' + paramList + '}';
//get the current location
var loc = window.location.href;
loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
//call the page method
$.ajax({
type: "POST",
url: loc + "/" + methodName,
data: paramList,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: onSuccess,
fail: onFail
});
}
function success(response) {
var lbl = $('#<%= Label1.ClientID %>')
lbl.html("Your report is now ready for download.");
alert(response.d);
}
function fail(response) {
alert("An error occurred.");
}
});
</script>
私は、次のWebメソッドを持っています:
[WebMethod]
public static string SliderChanged(string[] values)
{
return "successArray";
}
私はあなたがメッセージ名を指定せずにwebMethodsのでのオーバーロード機能を行うことができるとは思いませんでした。あなたはあなたがこれでテストソリューションを作る必要がないようになってきているというエラーを説明できますか?ソース:http://msdn.microsoft.com/en-us/library/byxd99hx(VS.71).aspx#vbtskusingwebmethodattributemessagename –
私が知る限り、最後に私が確認したところでは、Webメソッド名をオーバーロードすることはできません。パラメータタイプだけで過負荷を区別する能力を持たないSOAP要求に生成されるため、 – Nikki9696
Ok - 私は1つの方法しか持っていません(もはや過負荷ではありません)。私はビジュアルスタジオでブレークポイントを設定し、Webメソッドも成功メソッドも失敗メソッドもヒットしません。 – FiveTools