C#學習筆記
原始程式碼如下:
var MaxGroup = 5;//群組數量
var obj = [[]]; //===========================錯誤位置
var tempGroupName = [];
for (var i = 1; i < MaxGroup + 1; i++)
{
var tempStateList = [];
//get checkbox
for (var j = 1 ; j < 16; j++) {
tempStateList.push($("#autokind_" + i + "_" + j).is(":checked"));
}
obj.push(tempStateList)
tempGroupName.push($("#autokind_name_"+i).val());
}
var StoragePlaceParam = {
'TableName': Param.TableName, //--使用者查詢的TableName
'Date_Start': Param.Date_Start,
'Date_End': Param.Date_End,
'Combination': obj,
'GroupName': tempGroupName,
'GroupCount': 5
};
//------我們家的網址
var root = "http://" + location.host;
if (location.host.indexOf("localhost") == -1) {
root = "http://" + location.host + "/" + location.pathname.split('/')[1];
}
$.ajax({
type: 'POST',
url: root + "/api/SingleStockApi/GetSingleStockExtentionKindChart",
data: StoragePlaceParam, //------------------------參數丟入
success: function (data) {
}
});
以上透過Ajax 傳遞到後端後發生Combination 為null
在後端的Combination 型別為 List<List<bool>> 理論上應該要有值,後來發現是因為
var obj = [[]]; 不可以這樣寫 應該 寫成
var obj = [];
var obj =[[]] 實際上為 array = [[null]]
在傳遞到後端時因為判斷到null 所以List<List<bool>> 會直接視為全為null
如果定義成obj =[] 實際上為 array = []
//=====================