我有一个 WCF 服务,它从客户端(jquery 网页)发送字符串列表。当我使用 F5 运行 wcf 项目时,wcf 项目在 Visual Studio 中运行完美,一个窗口正在打开,我在看到下面的列表对象后单击 Invoke调用。我将在 jquery 中使用我的列表数据,所以我使用 ajax 来调用我的 wcf 服务,所有配置设置都是正确的。我正在使用abc
具有可验证列表的类,并且我有一个函数 data 将一些数据设置到该列表。这是我的服务合同和数据合同表格 WCF(IService1.cs):
namespace kgms
{
[ServiceContract]
public interface IService1
{
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
abc data(abc obj);
}
[DataContract]
public class abc {
[DataMember]
public List<string> sval { get; set; }
[DataMember]
public List<string> kval { get; set; }
}
}
这是我的数据函数信息(Service1.svc.cs):
namespace kgms
{
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1 : IService1
{
public abc data(abc obj) {
obj.sval.Add("asd");
obj.sval.Add("sdf");
obj.kval.Add("example");
obj.kval.Add(":-)");
return obj;
}
}
}
我将从该 ajax 调用访问:
$('#buton').click(function () {
Type = "POST";
Url = "http://compname/sil/Service1.svc/data";
ContentType = "application/json; charset=utf-8";
DataType = "json"; var ProcessData = true;
CallService();
});
function CallService() {
$.ajax({
type: Type,
url: Url,
data: Object,
contentType: ContentType,
dataType: DataType,
processdata: ProcessData,
success: function (msg) {
ServiceSucceeded(msg);
},
error: ServiceFailed
});
}
function ServiceFailed(result) {
alert("basarisiz");
alert('Service call failed: ' + result.status + '' + result.statusText);
Type = null; varUrl = null; Data = null; ContentType = null; DataType = null; ProcessData = null;
}
function ServiceSucceeded(result) {
alert("good");
}
});
我必须用 Object 发送什么参数Data: Object
是样本,必须写什么而不是 Object。因为我的 WCF 函数采用 abc 类对象,我该怎么办。