从MVC控制器使用Web API时返回JSON结果

sta*_*lay 5 asp.net-mvc c#-4.0 asp.net-web-api asp.net-web-api2

我正在通过带有HttpClient的mvc控制器使用外部Web API。我的网络API确实返回json格式的内容。

在使用Web API的同时,如何在我的MVC控制器中返回Web API响应的相同json格式的内容?我期待这样的事情。

public async JsonResult GetUserMenu()
{
    using (HttpClient client = new HttpClient())
    {
        client.BaseAddress = new Uri(url);
        HttpResponseMessage response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
             return await response.Content.ReadAsJsonAsync();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

使用Json.Net,您可以执行以下操作:

public async Task<JsonResult> GetUserMenu()
{
    string result = string.Empty;

    using (HttpClient client = new HttpClient())
    {
        client.BaseAddress = new Uri(url);
        HttpResponseMessage response = await client.GetAsync(url);

        if (response.IsSuccessStatusCode)
        {
            result = await response.Content.ReadAsStringAsync();
        }
    }

    return Json(Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(result));
}
Run Code Online (Sandbox Code Playgroud)