Javascript 使用Web API Get()正确格式化JSON

Javascript 使用Web API Get()正确格式化JSON,javascript,c#,asp.net,json,angularjs,Javascript,C#,Asp.net,Json,Angularjs,在我的WebAPI项目中,我使用参数化方法,而不是按方法名调用。我在angular代码中使用$resource,这个调用非常有效 例如,这会给我一个联系人列表: public class LeadsController : ApiController { public IEnumerable<Contact> Get() { var contacts = new ContactRepository(); return contacts

在我的WebAPI项目中,我使用参数化方法,而不是按方法名调用。我在angular代码中使用$resource,这个调用非常有效

例如,这会给我一个联系人列表:

public class LeadsController : ApiController
{
    public IEnumerable<Contact> Get()
    {
        var contacts = new ContactRepository();

        return contacts.BuildContacts();
    }
}
现在的问题是angular需要一个数组,但是它返回了一个对象(字符串),所以我有错误。这是我的照片

return $resource('http://localhost:33651/api/Leads/', {
    get: { method: 'GET', isArray: false },
    query: {
        method: 'GET',
        isArray: true
    }
});
在我的web api方法中,是否有一种方法可以返回IEnumerable并正确地将Json格式化为驼峰大小写?我应该怎样处理我的处境


感谢您的帮助

Web API已经使用了Newtonsoft serializer,因此您只需对其进行配置即可。将这些行添加到
WebApiConfig.Register
方法:

    var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
    json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
并返回
IEnumerable
而不是
字符串
,请查看此示例项目


编辑

好的,这可能有点让我不知所措。所以我很确定我想实现那篇博文中的最后一个类,并用它来代替newtonsoft类?@osiris355没错,试着添加
JsonNetFormatter
类,并在
Application\u Start
中注册它。这将允许您保留类型为
IEnumerable
的结果,而不是
string
OnWriteToStreamAsync
方法负责json输出。我试图创建该类,但遇到了问题。FormatterContext无法解析。还有一些问题。如果您能帮助处理代码,我将标记为已回答。@osiris355编辑了我的答案,这样做会更容易,请查看此示例项目
    var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
    json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();