【问题标题】:Display Javasciprt file's data on a Razor page在 Razor 页面上显示 Javascript 文件数据
【发布时间】:2021-07-27 12:29:40
【问题描述】:

我有一个 javascript 文件,其中有一个对象数组。我想在剃刀页面上显示该数组的内容。我的问题是如何在剃须刀页面中访问 javascript 文件的内容。 这是我的 cshtml 文件。

@{
ViewData["Title"] = "HOME PAGE";
Layout = "~/Views/Shared/_GameLayout.cshtml";
}

<div id="Display"></div>
@section Scripts {
    <script src="~/js/leaderboard.js" type="module"></script>
    <script>
        var data = '';
        @* console.log(array,"array") *@
        for (var key in array) {
            if (array[key].a != undefined) {
                data += '<span>' + array[key].a +  '</span> ';
            }
            if (array[key].b != undefined) {
                data += '<span>' + array[key].b + '</span> ';
            }
            if (array[key].c != undefined) {
                data += '<span>' + array[key].c + '</span> ';
            }
        }

        $("#Display").html(data);
    </script>
}

这是我的 JavaScript 文件。

let array =
    [{ a: 53 },
    { b: 31 },
    { c: 15 }]

console.log(array,"array")

我想在html标签中显示数组的内容。

当我从 leaderboard.js 文件控制台.log 数组时,它正在打印数组,但是当我从 cshtml 控制台 .log 时,它说该数组未定义。

【问题讨论】:

  • 你想如何显示数组?展示在桌子上还是其他格式?

标签: javascript asp.net-core razor-pages


【解决方案1】:

不确定要如何显示数组,这里有一个关于如何显示数组数据的简单演示:

<div id="Display"></div>
@section Scripts {
    <script src="~/js/leaderboard.js"></script>
    <script>
        var data = '';
        for (var key in array) {
            if (array[key].a != undefined) {
                data += '<span>' + array[key].a +  '</span> ';
            }
            if (array[key].b != undefined) {
                data += '<span>' + array[key].b + '</span> ';
            }
            if (array[key].c != undefined) {
                data += '<span>' + array[key].c + '</span> ';
            }
        }

        $("#Display").html(data);
    </script>
}

更新:

请删除您剃须刀页面中的type="module"

参考:

https://javascript.info/modules-intro#module-level-scope

【讨论】:

  • 我收到了这个错误。未捕获的 ReferenceError:数组未在排行榜上定义:31
  • 嗨@M.HassanNasir,请确保您在leaderboard.js 中定义了数组。而我上面的 js 代码在 razor pages 中。请与我们分享更多代码。
  • 请再次检查我的问题,我已更新。我现在正面临这个问题。当我从 leaderboard.js 文件中控制台.log 数组时,它正在打印数组,但是当我从 cshtml 文件的脚本部分控制台 .log 时,它说该数组未定义。
  • 它在我的项目中运行良好。请检查leaderboard.js 文件是否在wwwroot/js 文件夹中。也许分享一个简单的代码仓库会更有帮助。
  • leaderboard.js 文件确实在 wwwroot/js 文件夹中。我正在正确导入它,因为在我的 leaderboard.cshtml 中,我可以在控制台中看到该数组,我在我的 js 文件中对其进行了控制台,但是当我从 cshtml 文件的脚本部分控制台数组时,它说它是未定义的。
猜你喜欢
  • 2021-01-18
  • 2012-05-16
  • 1970-01-01
  • 2021-06-26
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多