2015-05-28 3 views
0

У меня есть api-вызов, который действует как простая пересылка другого вызова api (для целей безопасности). Я просто хочу вернуть ответ json, поэтому мне не нужно дублировать объект или создать целый ws-клиент для одного вызова, возможно ли это? Вот что я получил:ApiController json from string

[Route("PreUpload")] 
[HttpPost] 
[Authorize] 
public async Task<IHttpActionResult> PreUpload(PreUploadInfoModel model) 
{ 
    using (var client = new HttpClient()) 
    { 
     client.BaseAddress = new Uri(ConfigurationManager.AppSettings["FileServerURI"].ToString()); 
     model.UserId = CurrentUserID; 
     var response = await client.PostAsJsonAsync("api/files/PreUpload", model); 

     if (response.IsSuccessStatusCode) 
     { 
      // response.Content.ReadAsStringAsync().Result = "{\"UploadId\":\"blah\",\"NextChunk\":0,\"ChunkSize\":123,\"Key\":\"someKey\",\"Token\":\"myToken\"}" 
      return Json(response.Content.ReadAsStringAsync().Result); 
     } 

     return BadRequest(response.ToString()); 
    } 
} 

Должно быть простым? Но это возвращает это браузеру: undefined:2.1241246524224146e+43

ответ

5

Как насчет кода, как показано ниже.

var jsonResponse = JObject.Parse(await response.Content.ReadAsStringAsync()); 
return Json(jsonResponse); 
+0

Он работал с одной модификацией: 'return Json (jsonResponse);'. Спасибо! –

+1

@CodesLikeA_Mokey // отлично. Я редактирую свой ответ. – Youngjae

+0

Я отвечу, когда смогу. –