更改SqlQuery结果的Content-Type

时间:2016-09-16 20:17:35

标签: c# json content-type asp.net-apicontroller

我正在从ApiController进行直接SQL查询(SQL Server 2014)到DB:

    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的形式到达客户端:&#34; application / json;字符集= UTF-8&#34 ;.我想将Content-Type更改为:&#34; application / json&#34;甚至&#34; text / xml&#34;。

我之前尝试过添加&#34;返回resl;&#34;这条线: HttpContext.Current.Response.ContentType = "application/json"; 但它并没有改变它。

我已尝试在标题中添加内容(只是为了查看响应已更改)并且标题已更改(并且更改了客户端):

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

我见过这个例子: HttpContext.Current.Response.AddHeader() not setting Content-Type header

确实它设置了内容类型,但我不知道如何将它应用于SqlQuery结果。此外,我不想将数据带到带有.ToList或类似的IIS服务器,然后将其写入响应,因为它很大(约80MB)。

我也见过这个: WebAPI to Return XML

和:Change Content-Type header for HttpResponseMessage

怎么可以这样做,还是控制器决定我这个?

0 个答案:

没有答案