[英]Changing response content type in asp.net Web API
我有一個具有Upload操作的asp.net Web Api控制器。 這是上載操作的簡化版本:
[HttpPost]
public async Task<string> Upload()
{
if (!Request.Content.IsMimeMultipartContent())
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
var provider = new MultipartMemoryStreamProvider();
await Request.Content.ReadAsMultipartAsync(provider);
var file = provider.Contents[0];
try
{
// Save the file...
}
catch (Exception e)
{
return JsonConvert.SerializeObject(new
{
status = "error",
message = e.Message
});
}
return JsonConvert.SerializeObject(new
{
status = "success"
});
}
該操作的返回類型必須為字符串,因為第三方上傳小部件使用了該操作,該小部件僅接受序列化的JSON。
問題是當我在IE 9中使用此功能時,瀏覽器不接受application/json
作為媒體類型。 因此,我必須確保服務器返回plain/text
。 如何在不將操作的返回類型更改為HttpResponseMessage
下執行此操作?
您可以執行以下操作:
public async Task<JsonResult> Upload()
return Json(someData, "text/html");
盡管僅返回json的另一個選項是通過iFrame發布,但它不會嘗試下載返回的html。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.