【问题标题】:using the javascript \r\n\ in a variable in an MVC view pulling from the @model在从@model 提取的 MVC 视图中的变量中使用 javascript \r\n\
【发布时间】:2016-04-19 16:36:30
【问题描述】:

我正在尝试为 Ace(Ajax.org Cloud9 编辑器)设置正确的格式,因此我正在解析从 MVC 视图中的@Model 提取的 Json,如下所示:

var model = JSON.stringify(@Html.Raw(Json.Encode(Model)));

var comma = model.replace(/,/g, ",\r\n");
var curlyBracket = comma.replace(/{/g, "{\r\n");
var colonCurlyBracket = bracket.replace(/:{/g, ':\r\n\{');
var bracketCurlyBracket = colonCurlyBracket.replace(/:\[{/g, ':\r\n\[{');

editor.setValue(bracketCurlyBracket, -1);

问题是这并没有做任何缩进来保持格式正确,它只是放回车和换行。我尝试使用:

var comma = model.replace(/,/g, ",\r\n\"); 
var curlyBracket = comma.replace(/{/g, "{\r\n\"); 
var colonCurlyBracket = bracket.replace(/:{/g, ':\r\n\\{'); 
var bracketCurlyBracket = colonCurlyBracket.replace(/:\[{/g, ':\r\n\\[{');

但额外的“\”在前两行给我错误“未终止的字符串常量”,在后两行它只是在编辑器中添加了一个“\”。我需要这些行继续,以便缩进和格式化工作。我该怎么做?

【问题讨论】:

  • 你想漂亮地打印 json 吗? Related
  • 没有。只需要格式看起来正确,以便更容易阅读。
  • 请查看 JSON.stringify 的第三个参数,它可能会为您解决所有问题。

标签: javascript json asp.net-mvc cloud9-ide


【解决方案1】:

感谢詹姆斯,这是答案:

JSON.stringify 的第三个参数完成了正确格式化的任务,所以它应该如下所示:

var model = JSON.stringify(@Html.Raw(Json.Encode(Model)), null, ' ');
editor.setValue(model, -1);

第三个参数('')带空格,空格数决定缩进数(即3个空格=3个缩进):

"filters": [
            {
                "id": "LastName",
                "label": "LastName",
                "type": "string",
                "operators": [
                    "equal",
                    "not_equal",
                    "begins_with",
                    "not_begins_with",
                    "contains",
                    "not_contains",
                    "ends_with",
                    "not_ends_with"
                ]
            }
           ]

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-29
    • 2016-11-24
    • 2019-03-02
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2015-03-20
    • 1970-01-01
    相关资源
    最近更新 更多