javascript - JavaScript-MVC.NET:获取多维数组的价值

原文 标签 javascript arrays asp.net-mvc

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

该数组是在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();返回位置0处的hdn_l_asuetos的类型System.Int32 [] []。

我将感谢您对遍历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视图中,则可以直接将数组分配给变量

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


这样,在渲染视图时,您将获得数组作为对象常量:

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

相关文章:

javascript - 取消订阅上传可观察到的角度6停止上传进度,但不是实际上传

javascript - d3图表调整大小无法正常工作

c++ - 输入文件中的数组

asp.net-mvc - Umbraco 4.11.3-控制器类型上的当前请求不明确

javascript - 使用UmbracoV7中的选择框更改每页的项目数

asp.net-mvc - 在程序包管理器控制台中运行enable-migrations时出现错误

javascript - 使用%模数了解此Javascript代码

javascript - 仅使用客户端代码检测301重定向

arrays - 有没有一种方法可以根据其值而非数组编号用数组中的两个新元素替换数组的元素?

c++ - 向量数组的默认值是多少?