C# ASMX webservice-返回JSON而不是XML

C# ASMX webservice-返回JSON而不是XML,c#,json,web-services,asmx,javascriptserializer,C#,Json,Web Services,Asmx,Javascriptserializer,我有一个包含一个方法的web服务: [WebMethod] public string Movies() { using (var dataContext = new MovieCollectionDataContext()) { var query = dataContext.Movies.Select(m =>new{m.Title,m.ReleaseDate}).Take(20); var serializer = new JavaSc

我有一个包含一个方法的web服务:

[WebMethod]
public string Movies()
{
    using (var dataContext = new MovieCollectionDataContext())
    {
        var query = dataContext.Movies.Select(m =>new{m.Title,m.ReleaseDate}).Take(20);
        var serializer = new JavaScriptSerializer();
        return serializer.Serialize(query);
    }
}
该方法正确地序列化了对象,但当我在FireBug中查看响应时,它看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">[{"Title":"SQL","ReleaseDate":"\/Date(1224007200000)\/"},{"Title":"Termonator Salvation","ReleaseDate":"\/Date(1224007200000)\/"}]</string>
上面的代码显示了我在jQuery中所做的事情,以及当错误事件调用时我得到了这个错误

SyntaxError: JSON.parse: unexpected character
如何将上述数据转换为JSON,以便在jQuery中使用?我哪里出错了?

您需要指定方法的名称:

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetMovies() {
}
注意:为了让其他有类似问题的人了解这个问题,还需要注意的是,您应该使用
POST
请求,而不是
GET
请求。见:


编辑

根据您发布的jQuery,您没有调用正确的方法。您定义了一个名为
GetMovies
的方法,而jQuery正在尝试调用一个名为“Movies”的方法

这:

应改为:

url: "/MovieService.asmx/GetMovies"

@哈西布坎,首先,不要叫我亲爱的:-)。其次,这是返回JSON格式数据的正确方法。请查看我的答案,并确认您已在测试环境中正确地实现了它。请查看我更新的问题,以便您清楚地知道我在做什么以及我在哪里出错!很抱歉,我叫你亲爱的。是的,是的,当然我删除了get并写了这一行[ScriptMethod(ResponseFormat=ResponseFormat.Json)],但我的问题仍然没有解决,但问题仍然存在same@HaseebKhan,根据你提供的信息,这是正确的答案。要么提供更多信息,要么花第二或第三时间查看代码。为什么在这里使用JSONP?好吧,我删除了jsonp,但问题仍然是一样的,plz solve iti找到了另一种方法,使用WCF和jsonp,这是非常酷的组合,工作非常完美。您需要json和xml,或者只需要json
url: "/MovieService.asmx/Movies"
url: "/MovieService.asmx/GetMovies"