Для того, чтобы Web API отдавал данные в формате JSONP, необходимо:
1) установить package, прописав в Package Manager Console такую команду:
Install-Package WebApiContrib.Formatting.Jsonp
2) в папку проекта App_Start добавить файл, содержащий следующий код:
public class FormatterConfig
{
public static void RegisterFormatters(MediaTypeFormatterCollection formatters)
{
var jsonFormatter = formatters.JsonFormatter;
jsonFormatter.SerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};
// Insert the JSONP formatter in front of the standard JSON formatter.
var jsonpFormatter = new JsonpMediaTypeFormatter(formatters.JsonFormatter);
formatters.Insert(0, jsonpFormatter);
}
}
SerializerSettings здесь исключительно для того, что задать правила именования свойств, поэтому по сути достаточно последних двух строк
3) зарегистрировать наш новый форматтер в Global.asax, добавив в метод Application.Start следующую строку:
FormatterConfig.RegisterFormatters(GlobalConfiguration.Configuration.Formatters);
Предварительно необходимо, чтоб Web API был настроен на передачу JSON.
Для этого в WebApi.Register необходимо добавить две строки:
config.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
config.Formatters.Add(GlobalConfiguration.Configuration.Formatters.JsonFormatter);
Комментариев нет:
Отправить комментарий