【发布时间】:2011-09-11 14:48:24
【问题描述】:
我有一个对 .NET Web 服务的 $.ajax 调用,该服务又将 DAL 中的一个函数利用到实体框架。我认为这会起作用,但问题在于传递艺术家 ID 数组。我已经尝试过从字符串数组到 int 数组的各种疯狂转换,我使用过 Linq .Select,但都不起作用。我总是得到Cannot convert object of type System.String to type System.Int32[] 或类似的。我明白这个错误,我只是不知道如何解决它。
这是我的 jQuery:
var params = new Array();
$('ul li img.selected').each(function (index) {
params.push($(this).attr('id'));
});
var d = $('#calendar').fullCalendar('getDate').format();
var parameters = {
sessionHash: 'xxx',
start: d,
end: d,
artists: JSON.stringify(params)
};
$.ajax({
type: "POST",
url: "/ws.asmx/GetDatesForArrayOfArtists",
data: JSON.stringify(parameters),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: (function Success(data, status) {
alert('hazzah!');
}),
error: (function Error(request, status, error) {
alert('poo botty bum smells');
})
});
这是我的网络服务:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public List<Calendar> GetDatesForArrayOfArtists(string sessionHash, DateTime start, DateTime end, int[] artists)
{
var u = UserObject.GetCurrentUser(sessionHash);
//var ints = artists.Select(x => int.Parse(x.ToString())).ToArray();
return CalendarObject.GetDates(u.ClientId, start, end, artists);
}
我已将一些已注释掉的代码留在其中,以便人们可以看到我修复此问题的蹩脚尝试。所以,基本问题是,鉴于上面的代码,我如何将整数数组传递给 Web 服务?
编辑1:这是浏览器控制台的两张截图,这可能有助于解释问题:
【问题讨论】:
标签: c# jquery web-services asmx