JavaScript-MVC.NET : Get value of Multimensional Array

标签 javascript arrays asp.net-mvc

我正在尝试获取多维 int[][] 的值JavaScript 上的数组。

该数组在 Controller 类中初始化,并通过名为 hdn_l_asuetos 的隐藏输入元素中的 View 类传递给 JS。 .

问题是我需要迭代 int[][]数组到 de JavaScript 文件中,但我不能。 这是我的 JS 代码:

var natDays = $('#hdn_l_asuetos').val();

function nationalDays(date, inMonth) {
    if (inMonth) {
        for (i = 0; i < natDays.length; i++) {
            alert("MES " + natDays[i][0]);
            alert("DIA " + natDays[i][1]);
            if (date.getMonth() + 1 == natDays[i][0] &&
                    date.getDate() == natDays[i][1]) {
                return {selectable: false};
            }
        }
    }
    return {};
}

我得到这个结果:

MES S
DIA undefined
MES y
DIA undefined
MES s
DIA undefined
MES t
DIA undefined
MES e
DIA undefined
MES m
DIA undefined
MES .
DIA undefined
MES I
DIA undefined
MES n
DIA undefined
MES t
DIA undefined
MES 3
DIA undefined
MES 2
DIA undefined
MES [
DIA undefined
MES ]
DIA undefined
MES [
DIA undefined
MES ]
DIA undefined

由此我可以看到 var natDays = $('#hdn_l_asuetos').val();返回类型 hdn_l_asuetos , System.Int32[][] 位于位置 0。

如果您能帮助我迭代int[][],我将不胜感激。大批。 提前致谢。

最佳答案

您正在以正确的方式访问多维数组元素

arr[i][j]

但是当你这样做时

var natDays = $('#hdn_l_asuetos').val();

您得到的字符串为 natDays

我认为您是在服务器端执行此操作的:

System.Int32[][] myArr = ....

and in razor view

... @myArr

有效执行

myArr.ToString()

并且您在输入控件中收到了“System.Int32[][]”

您应该做的是在服务器端对数组进行 JSON 序列化,然后在客户端对其进行反序列化

//in view
@Html.Raw(Json.Encode(myArr))


//js 
var natDaysJson = $('#hdn_l_asuetos').val();
var natDays = JSON.parse(natDaysJson)

那么剩下的所有代码将保持不变

或者,如果这段 javascript 位于 razor View 中,您可以直接将数组分配给变量

var natDays = @Html.Raw(Json.Encode(myArr))

这样,当渲染 View 时,您将拥有数组作为对象文字:

var natDays = [ [ 1,2,3] , [4,5,6]... ]

关于JavaScript-MVC.NET : Get value of Multimensional Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24921173/

相关文章:

javascript - 如何检查两个对象数组是否不同,而不考虑顺序?

javascript - 按升序排列数组

c# - ASP.Net Web 应用程序的插件

c# - 选择参数中的默认值为 DateTime.Now

javascript - 自动完成列表固定位置浏览器调整大小

javascript - 如何使用 v3 API 和 JQuery 将事件添加到 Google 日历?

JavaScript 数组到列表

javascript - 在 WordPress 响应式工具提示上调用 Javascript

c - 使用memcpy方法

c# - "The operation cannot be completed because the DbContext has been disposed"