簡體   English   中英

從.net core 1.1升級到2.0更改了[Produces(“ application / json”)]行為

[英]Upgrading from .net core 1.1 to 2.0 changed [Produces(“application/json”)] behaviour

我已經將我們的項目從.net core 1.1升級到了2.0,除了控制器操作返回的字符串是Json文本之外,其他一切似乎都正常運行。 他們看着像是

[HttpGet]
[Produces("application/json")]
public IActionResult Get(string name)
{
    var jsonStr = service.GetJsonStringFromDB();

    return Ok(jsonStr);
}

我們有Json對象以文本形式存儲在Db中。 在舊項目中,我們的Angular服務會將其視為Json數據,然后將返回一個對象,在新項目中,我們的Angular服務會將其視為字符串,然后將其返回。 客戶端沒有任何變化。

這實際上是正確的行為。

OkOkObjectResult的輔助方法(實際上,從ObjectResult繼承的所有結果都將嘗試將其反序列化為配置的類型,具體取決於注冊的序列化程序和客戶端請求的響應類型等),這將對輸入進行序列化

如果要返回原始字符串,請改用Content

[HttpGet]
[Produces("application/json")]
public IActionResult Get(string name)
{
    var jsonStr = service.GetJsonStringFromDB();

    return Content(jsonStr);
    // Alternatively, pass the type here 
    //return Content(jsonStr, "application/json");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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