【问题标题】:Error when nesting objects in objects in array将对象嵌套在数组中的对象中时出错
【发布时间】:2017-05-18 15:54:28
【问题描述】:

我使用 razor 语法和 javascript 在我的代码的两个位置创建对象数组。但是,一个出现错误,另一个没有。

这是没有出错的:

var tableItems = [
    @foreach(var i in items)
    {
        <text>
        {
            "ItemID":@i.ItemID,
            "ItemName":@i.ItemName,
        },
        </text>
    }
];

下面是它在渲染时生成的javascript数组:

var tableItems = [
    {
        "ItemID":123000,
        "ItemName":"An Item Name",
    },              
    {
        "ItemID":456000,
        "ItemName":"Another Item Name"
    }, /* comma here doesn't throw error */
];

这是另一个,下面的代码没有显示错误,但是呈现的却是:

var tableItemsTwo = [
    @foreach (var i in items)
    {
        <text>
        {
            "ItemID": @i.ItemID,
            "ItemName": @i.ItemName,
            "Subitems":
            @foreach (var s in i.Subitems)
            {
                <text>
                {
                    "SubitemID":@s.SubitemID,
                    "SubitemName":@s.SubitemName
                },
                </text>
            }
        },
        </text>
    }
];

抛出错误的渲染数组:

var tableItemsTwo = [
    {
        "ItemID": 110000,
        "ItemName": "Item One",
        "Subitems":
            {
                "SubitemID":100,
                "SubitemName":"Subitem One"
            },          
            { /* Error on this line: "Expected identifier, string or number" */
                "SubitemID":200,
                "SubitemName":"Subitem Two"
            },  
            {
                "SubitemID":300,
                "SubitemName":"Subitem Three"
            },          
    }, /* Error on this line: "Syntax error" */
];

如何修复tableItemsTwo?我正在使用 MVC 5。

【问题讨论】:

    标签: javascript arrays razor


    【解决方案1】:

    您的Subitems 需要[] 围绕它,因为它是一个对象数组。

    试试:

    var tableItemsTwo = [
        @foreach (var i in items)
        {
            <text>
            {
                "ItemID": @i.ItemID,
                "ItemName": @i.ItemName,
                "Subitems": [
                @foreach (var s in i.Subitems)
                {
                    <text>
                    {
                        "SubitemID":@s.SubitemID,
                        "SubitemName":@s.SubitemName
                    },
                    </text>
                }
            ]},
            </text>
        }
    ];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 2018-01-24
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多