В моем веб-проекте Api Я использую параметризованные методы и не вызываю имя метода. Я использую $ resource в своем угловом коде, и этот вызов работает отлично.Правильное форматирование JSON с помощью Web API Get()
Например, это заставляет меня список контактов:
public class LeadsController : ApiController
{
public IEnumerable<Contact> Get()
{
var contacts = new ContactRepository();
return contacts.BuildContacts();
}
}
Единственная проблема у меня есть корпус так, то я использую newtonsoft и должны изменить тип возвращаемого в строку для того, чтобы работать
public class LeadsController : ApiController
{
public string Get()
{
var contacts = new ContactRepository();
var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() };
return JsonConvert.SerializeObject(contacts, Formatting.Indented, settings);
}
}
Теперь проблема заключается в том, что угловой ожидает массив, но он возвращает объект (строку), поэтому у меня возникают ошибки. Вот мой угловой
return $resource('http://localhost:33651/api/Leads/', {
get: { method: 'GET', isArray: false },
query: {
method: 'GET',
isArray: true
}
});
Есть ли способ на моем веб-метод апи я могу вернуть IEnumerable и иметь Json отформатирован в ГорбатыйРегистр правильно? Каков наилучший способ справиться со своей ситуацией?
Спасибо за помощь
Хорошо это может быть немного над моей головой , Итак, я уверен, что хочу реализовать последний класс в этом сообщении в блоге и использовать его вместо класса newtonsoft? –
@ osiris355 Правильно, попробуйте добавить класс 'JsonNetFormatter' и зарегистрировать его в' Application_Start'. Это позволит вам сохранить результат типа 'IEnumerable' вместо 'string'. Метод 'OnWriteToStreamAsync' отвечает за вывод json. –
Я пытаюсь сделать класс, и у меня проблемы. FormatterContext не разрешит. http://stackoverflow.com/questions/20095701/the-type-or-namespace-name-formattercontext-could-not-be-found-net-4-5 –