【发布时间】:2020-04-30 15:13:38
【问题描述】:
我的 C# 控制器方法中有一个 SelectList,其中包含 8 个文本/值对。我想将其转换为可以在剑道网格的 foreignKey 列中访问的 JavaScript 数组。我的 arObjArray 的结构符合预期。唯一的问题是数组的内容是错误的。我没有得到与 packageList 项一致的 8 对列表,而是得到一个 8 行数组,每行与 packageList 中的最后一项具有相同的值。我的javascript函数的相关部分是这样的:
var arObjArray = [];
var arObj = {};
@foreach (SelectListItem d in packageList)
{
@:arObj["text"] = "@d.Text";
@:arObj["value"] = Number("@d.Value");
@:arObjArray.push(arObj);
}
console.log(arObjArray)
我在这里错过了什么?
【问题讨论】:
-
JavaScript 将通过引用传递对象——而不是在循环外声明
arObj,在循环内声明它,或者直接从循环内推入一个对象。@:arObjArray.push({text: "", value: ""}) -
你应该使用 JSON。
-
这与您的问题无关,但我之前从未见过
@foreach、@:arObj等语法。它来自哪里? -
@Klaycon ASP.Net MVC Razor(CSHTML 文件)。
标签: javascript c# arrays foreach