我正在从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
怎么可以这样做,还是控制器决定我这个?