簡體   English   中英

在ASP.NET Web API中更改響應內容類型

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM