Изменить Content-Type для результата SqlQuery

Я делаю из ApiController прямой SQL-запрос (SQL Server 2014) к БД:

    public object Post(JObject jsonData){
//..
 string qvalue = "SELECT s.Id, v.[Name] VehicleId, s.TimestampLocal FROM Status s INNER JOIN Vehicles v on s.VehicleId = v.Id";
     var resl = entities.Database.SqlQuery<StatusTime>(qvalue);
     return resl;

Ответ поступает клиенту как Content-Type: "application/json; charset=utf-8". Я хочу изменить Content-Type на что-то другое, например: «application/json» или даже «text/xml».

Я попытался добавить перед "return resl;" строка: HttpContext.Current.Response.ContentType = "application/json"; но это ее не меняет.

Я попытался добавить что-то в заголовок (просто чтобы увидеть, как изменился ответ), и заголовок был изменен (и поступил к клиенту изменен) с помощью:

HttpContext.Current.Response.AppendHeader("test", "hello");

Я видел этот пример: HttpContext.Current.Response.AddHeader( ) не устанавливая заголовок Content-Type

и действительно, он устанавливает тип содержимого, но я понятия не имею, как применить его к результату SqlQuery. Также я не хочу переносить данные на сервер IIS с помощью .ToList или подобного, а затем записывать их в ответ, потому что он массивный (~ 80 МБ).

Я тоже видел это: WebAPI для возврата XML

и: Изменить заголовок Content-Type для HttpResponseMessage

Как это можно было сделать, или это решает за меня контролер?


person user3546827    schedule 16.09.2016    source источник
comment
Вероятно, charset является частью кодировки ответа. В вашем конфигурационном файле указано responseEncoding?   -  person stephen.vakil    schedule 16.09.2016
comment
Для вас может быть конструктивным сказать, чего вы в конечном итоге пытаетесь достичь. В чем проблема с типом контента по умолчанию для возврата объекта? Мне просто интересно, правильно ли вы задаете вопрос.   -  person btberry    schedule 17.09.2016
comment
@btberry Я пытаюсь решить эту проблему: stackoverflow.com/questions/12139957/ Контент успешно загружается в Chome, Firefox и даже в IE (для небольшого набора данных ‹15 МБ). После этого IE загружает весь контент (ответ 200 даже для 100 МБ+), но данные не определены. Я надеюсь, что изменение типа контента решит проблему.   -  person user3546827    schedule 17.09.2016
comment
@ stephen.vakil нет, я не указал responseEncoding в web.config. Одна из ссылок в моем посте на самом деле говорит, что тип автоматически устанавливается API-контроллером, если я возвращаю сериализуемый объект.   -  person user3546827    schedule 17.09.2016