2015-05-23 25 views
3
asp.net的MVC页

对我有这样的结果JSON字符串化工作不

http://screencast.com/t/s1loWQQ6wZG

https://content.screencast.com/users/levalencia/folders/Jing/media/8c8f0201-4a75-4f91-b311-6ed64c382fac/2015-05-22_1932.png

我的代码如下:

我缺少什么,这样的JSON是美化?

查看

@model PruebasAD.Models.SuccessViewModel 
@{ 
    ViewBag.Title = "TestRestCall"; 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

<h2>TestRestCall</h2> 
<article> 
    <aside class="green"> 
     @Model.Message 
    </aside> 
    <aside> 
     <pre id="json-result"> 
     </pre> 
    </aside> 
</article> 


<script type="text/javascript"> 
    $(document).ready(function(){ 
     var str = JSON.stringify(@(new MvcHtmlString(Model.JSON)), undefined, 2); // indentation level = 2 
     $('#json-result').html(str); 
     console.log(str); 
    }); 
</script> 

控制器动作

public async Task<ActionResult> TestRestCall() 
     { 
      Uri serviceRoot = new Uri(azureAdGraphApiEndPoint); 
      var token = await GetAppTokenAsync(); 
      string requestUrl = "https://graph.windows.net/mysaasapp.onmicrosoft.com/users?api-version=2013-04-05"; 

      HttpClient hc = new HttpClient(); 
      hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
       "Bearer", token); 

      HttpResponseMessage hrm = await hc.GetAsync(new Uri(requestUrl)); 

      if (hrm.IsSuccessStatusCode) 
      { 
       string jsonresult = await hrm.Content.ReadAsStringAsync(); 
       return View("TestRestCall", new SuccessViewModel 
       { 
        Name = "The Title", 
        Message = "The message", 
        JSON = jsonresult.ToJson() 
       }); 
      } 
      else 
      { 
       return View(); 
      } 

     } 

,你需要你的模型转换使用JSON.parse JavaScript对象模型

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

    namespace PruebasAD.Models 
    { 
     public class SuccessViewModel 
     { 
      public string Name { get; set; } 
      public string Message { get; set; } 
      public string JSON { get; set; } 
     } 
    } 
+0

呈现的html是什么?可疑的第一个参数stringify不是一个JavaScript对象 – JJS

回答

1

首先,然后传递给JSON.stringify

查看文档json.parse

<script type="text/javascript"> 
$(document).ready(function(){ 
    var myObject = JSON.parse(@Html.Raw(new MvcHtmlString(Model.JSON))); 
    var str = JSON.stringify(myObject,undefined, 2); // indentation level = 2 
    $('#json-result').html(str); 
    console.log(str); 
});