我想使用jquery ajax调用从c#.net返回json数据。现在因为我想返回json,我正在考虑使用WCF或使用页面方法作为WebMethod。
根据我尝试使用WebMethod页面,我收到以下回复" as" JSON:
{" d":" {\" ID \":1,\"值\":\"第一值\"}"}
这是一个合适的json,还是有办法让#34;清洁" json使用WCF?
AJAX
$.ajax({
type: 'POST',
url: 'Service1.svc/DoWork',
cache: false,
contentType: "application/json; charset=utf-8",
data: "{ }",
dataType: 'json',
success: function (data) {
alert(data);
},
error: function (xhr, msg, msg2) {
alert(msg);
}
});
WCF
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class Service1
{
[OperationContract]
public List<TestClass> DoWork()
{
List<TestClass> tc = new List<TestClass>();
tc.Add(new TestClass() { ID = 1, Value = "First Value" });
return tc;
}
public class TestClass
{
public TestClass()
{ }
public int ID { get; set; }
public string Value { get; set; }
}
}
答案 0 :(得分:0)
为webmethod的返回类型创建一个类,例如
class Person
{
public int ID { get; set; }
public string Value { get; set; }
}
然后你可以写这样的网络方法,
public Person GetPerson()
{
Person person = new Person();
person.ID = 1;
person.Value = "test";
return person;
}
然后在ajax成功中,您将获得格式正确的json响应。