簡體   English   中英

將 C# 列表轉換為 javascript 數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM