【问题标题】:json stringify not working on asp.net mvc pagejson stringify 在 asp.net mvc 页面上不起作用
【发布时间】:2015-08-05 18:29:25
【问题描述】:

我有这个结果

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();
            }

        }

和模型

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; }
        }
    }

【问题讨论】:

  • 渲染的html是什么?怀疑 stringify 的第一个参数不是 javascript 对象

标签: javascript c# jquery asp.net json


【解决方案1】:

首先您需要使用 JSON.parse 将模型转换为 javascript 对象,然后传递给 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);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多