[英]Converting C# list to javascript array
我的 C# 控制器方法中有一個 SelectList,其中包含 8 個文本/值對。 我想將其轉換為一個 JavaScript 數組,我可以在劍道網格的外鍵列中訪問該數組。 我的 arObjArray 的結構符合預期。 唯一的問題是數組的內容是錯誤的。 我得到了一個包含 8 行的數組,每行的值與 packageList 中的最后一項相同,而不是包含 8 對的列表。 我的 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)
我在這里缺少什么?
對象通過引用傳遞,與 C# 中的實例相同。 在您的 foreach 循環中,您實際上是一遍又一遍地重用同一個對象,因為它只分配給一個空對象一次( var arObj = {};
在循環外)。 因此,您多次將一個對象推送到數組,並在每次數組迭代時修改該對象的值。
arObj
在循環內聲明和分配arObj
:
@foreach (SelectListItem d in packageList)
{
var arObj = {};
@:arObj["text"] = "@d.Text";
@:arObj["value"] = Number("@d.Value");
@:arObjArray.push(arObj);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.