【发布时间】:2015-09-09 08:53:54
【问题描述】:
我正在尝试将 Json 数据从 Ajax 请求发送到一个安静的 Web 服务。 这不是我第一次这样做,但这次类型更复杂。
这是网络服务方法:
InstanceServiceResponse<BlogPostData> CreatePost(ObjectCollection ressources);
对象ObjectCollection定义如下:
public class ObjectCollection : ISerializable, IEnumerable
{
Dictionary<string, object> objectsValue;
public ObjectCollection()
{
objectsValue = new Dictionary<string, object>();
}
public ObjectCollection(IDictionary<string, object> parameters)
{
objectsValue = new Dictionary<string, object>(parameters);
}
...
...
}
ressources 参数是这样创建的:
function GetRessources() {
var Ressources = [];
$.each($("#ressources-holder > div"), function (key, value) {
Ressources.push( { "name": $(value).children().first().text().slice(0, -1), "id": $(value).attr('id') } );
});
return Ressources;
}
而创建的 Json 是:
[{"name":"tototititata","id":"107875"},{"name":"test","id":"107877"}]
关于错误以及我在其他 SO 帖子中看到的与同一问题相关的内容,这似乎是因为参数的名称。
但是,这就是我发布新问题的原因,我的类型 (ObjectCollection) 没有任何公共字段,我可以“绑定”我的参数。
我现在有点不知所措,我们将非常感谢任何帮助和建议。
编辑
由于我没有找到任何适用的解决方案,因此我使用了旁路。
我像这样发送Dictionary<string, object>:
function GetRessources() {
var Ressources = [];
$.each($("#ressources-holder > div"), function (key, value) {
Ressources.push({ "Key": $(value).children().first().text().slice(0, -1), "Value": $(value).attr('id') });
});
return Ressources;
}
然后服务器端只是用它创建一个新的ObjectCollection。
这不会帮助我认为的任何人,但我会为后代保留这个问题。
【问题讨论】: