繁体   English   中英

如何传递在服务器端生成的json字符串并将其用作MVC客户端javascript中的参数

[英]How to pass json string generated on server side and use it as aparameter in javascript on client side in MVC

大家好,这是我的第一个问题!

所以基本上我想将序列化的数组从服务器端传递到客户端,然后将其用作JS中的参数。 目前,我通过viewModel将其作为常规字符串发送,并尝试通过使用@ Html.Raw()进行注入,如下所示,但它不起作用:

        var table = $('#shipments').dataTable({
            "bServerSide": true,
            "sAjaxSource": "GetShipmentsAH",
            "bProcessing": true,
            "bJQueryUI": true,
            "fnCreatedRow": function (nRow, aData, iDataIndex) {
                $(nRow).attr('shipID', aData[0]);
            },
            "aoColumns": @Html.Raw(Model.ShipmentsAoColJSon);
        });

这是Model.ShipmentsAoColJSon的值:

[{ “SNAME”: “ID”, “sDefaultContent”: “”, “bSortable”:真 “bSearchable”:真 “SSEARCH”: “”},{ “SNAME”: “EAN”, “sDefaultContent”: “”, “bSortable”:真 “bSearchable”:真 “SSEARCH”: “”},{ “SNAME”: “串行”, “sDefaultContent”: “”, “bSortable”:真 “bSearchable”:真“SSEARCH”: “”},{ “SNAME”: “NR”, “sDefaultContent”: “”, “bSortable”:真实的, “bSearchable”:真实的, “SSEARCH”: “”},{ “SNAME”: “StoreUnitNr”, “sDefaultContent”: “”, “bSortable”:真实的, “bSearchable”:真实的, “SSEARCH”: “”},{ “SNAME”: “FCODE”, “sDefaultContent”: “”, “bSortable” :真正的 “bSearchable”:真实的, “SSEARCH”: “”},{ “SNAME”: “ProdDesc”, “sDefaultContent”: “”, “bSortable”:真实的, “bSearchable”:真实的, “SSEARCH”:” “}]

当我只是复制粘贴它直接编码时,它可以正常工作。 有任何想法吗?

我发现了问题的根源。 当我直接将脚本粘贴粘贴到工作的html标记中时,脚本存储在外部.js文件中。 似乎@Html剃须刀只能在主要的HTML页面上使用,而不能在js文件中使用。 为了解决这个问题,我在HTML中写了这个:

var ShipAoColJSon = @ Html.Raw(Model.ShipAoColJSon);

然后将其传递给js。 文件:

var table = $('#shipments').dataTable({
    "bServerSide": true,
    "sAjaxSource": "GetShipmentsAH",
    "bProcessing": true,
    "bJQueryUI": true,
    "fnCreatedRow": function (nRow, aData, iDataIndex) {
        $(nRow).attr('shipID', aData[0]);
    },
    "aoColumns": ShipAoColJSon
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM