确保JSON在从不涉及javascript的简单视图模型对象上漂亮打印(ASP.NET MVC 4)

确保JSON在从不涉及javascript的简单视图模型对象上漂亮打印(ASP.NET MVC 4),javascript,jquery,asp.net-mvc-4,Javascript,Jquery,Asp.net Mvc 4,我的思想有点脱节。我已经看到了如何使用JSON.stringify(obj)进行JSON漂亮打印-但我有一种情况需要这样做,但json从来没有真正接触过javascript。它只是MVC视图模型上的一个字符串。这是一个“错误”视图,就像这样 (我正在使用jQuery,如果它打开了任何其他选项) 模型 有点像这样。如果操作失败,它将生成以下视图 控制器 看法 @模型故障视图模型 @{ ViewBag.Title=“数据输入错误”; Layout=“~/Areas/Administrator/Vie

我的思想有点脱节。我已经看到了如何使用
JSON.stringify(obj)进行JSON漂亮打印-但我有一种情况需要这样做,但json从来没有真正接触过javascript。它只是MVC视图模型上的一个字符串。这是一个“错误”视图,就像这样

(我正在使用jQuery,如果它打开了任何其他选项)

模型 有点像这样。如果操作失败,它将生成以下视图

控制器 看法
@模型故障视图模型
@{
ViewBag.Title=“数据输入错误”;
Layout=“~/Areas/Administrator/Views/Shared/_Layout.cshtml”;
}
@模型消息
@Model.JSON

我基本上只想对
@Model.JSON
进行“stringify”,这样它就可以很好地显示所有内容并格式化,但如果不真正让视图复杂化,我就很难做到这一点。有什么建议吗?

来自@code>charlietfl给我的链接
我设计了以下内容来实现我的目标

视图模型 控制器 看法
@model SuccessViewModel
@{
ViewBag.Title=“成功输入数据”;
Layout=“~/Areas/Administrator/Views/Shared/_Layout.cshtml”;
}
@模型消息
$(文档).ready(函数(){
var str=JSON.stringify(@(新的MvcHtmlString(Model.JSON)),未定义,2);//缩进级别=2
$('#json result').html(str);
console.log(str);
});
扩展方法
//
///允许将任何对象快速序列化为Json。
/// 
公共静态类JsonExtensions{
/// 
///将对象序列化为Javascript对象表示法。
/// 
///要序列化的项。
/// 
///该项序列化为Json。
/// 
公共静态字符串ToJson(此对象项){
返回Newtonsoft.Json.JsonConvert.SerializeObject(项);
}
}

你所说的“扭曲视图”是什么意思?试试这个:嘿,@charlieftl-我不知道该怎么办。我的解决方案与您链接的解决方案(略有不同),但您链接的解决方案提供了所有信息。不过,我还是要感谢你。
public class FailureViewModel{
        public string Name { get; set; }
        public string Message { get; set; }
        public string JSON { get; set; }
    }
        return View("Failure", new FailureViewModel{
            Name = "Some Error Name",
            Message = "There was an error and the changes were not submitted. Please submit this to the administrator",
            JSON = model.ToJson()
        });
@model FailureViewModel

@{
    ViewBag.Title = "Error With Data Entry";
    Layout = "~/Areas/Administrator/Views/Shared/_Layout.cshtml";
}

<article>
    <aside class="red">
        @Model.Message
    </aside>
    <aside>
        <pre>
            @Model.JSON
        </pre>
    </aside>
</article>
public class SuccessViewModel {
        public string Name { get; set; }
        public string Message { get; set; }
        public string JSON { get; set; }
    }
    return View("Success", new SuccessViewModel {
        Name = "The Title",
        Message = "The message",
        JSON = model.ToJson()
    });
@model SuccessViewModel

@{
    ViewBag.Title = "Successful Data Entry";
    Layout = "~/Areas/Administrator/Views/Shared/_Layout.cshtml";
}


<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>
/// <summary>
/// Allows for any object to be serialized into Json very quickly.
/// </summary>
public static class JsonExtensions {
    /// <summary>
    /// Serializes an object to Javascript Object Notation.
    /// </summary>
    /// <param name="item">The item to serialize.</param>
    /// <returns>
    /// The item serialized as Json.
    /// </returns>
    public static string ToJson(this object item) {
        return Newtonsoft.Json.JsonConvert.SerializeObject(item);
    }
}