【发布时间】:2015-10-15 10:13:03
【问题描述】:
我有一个带有上传操作的 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 的情况下做到这一点?
【问题讨论】:
标签: c# asp.net-web-api internet-explorer-9 content-type