使用webservice返回json的Jquery ajax

时间:2014-05-21 08:03:49

标签: jquery ajax json wcf

我想使用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; }

        }

    }

1 个答案:

答案 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响应。