我試圖解析一個簡單的guid /字符串數組到json json被用作後調用我的控制器的參數。解析一個字符串數組到MVC方法
我一直在嘗試很多不同的東西,但我只是不能讓控制器的方法看到我的列表。
該陣列由複選框值構建:
$('input:checkbox').click(function() {
if ($(this).attr("checked") == true) {
selected.push($(this).val());
}
});
,看起來沒事。 然後我嘗試將其轉換成JSON
$(document).ready(function() {
$('#Summarize').click(function() {
var arrayJson = {};
for (i in selected) {
arrayJson[i] = selected[i];
}
var json = {
SelectedQuantities: arrayJson
};
$.ajax({
url: "/MVC/Physical/SelectQuantities/@Model.TopID",
type: "POST",
data: JSON.stringify(json),
dataType: "json",
contentType: 'application/json',
success: function (result) {
debugger;
if (result.status == 200)
location.replace = "/MVC/Physical/QuantitySummaryView/@Model.TopID"
else {
//Handle error
}
}
});
});
});
我的控制器方法看起來如下:
public ActionResult QuantitySummaryView(Guid id, List<String> SelectedQuantities)
不過這個名單總是空。我想這是因爲JSON列表不包含直接在它下面的GUID數組。
你能幫我把它推到原位嗎?
JSON(由鉻合金開發工具可以看到)看起來如下:
{
"SelectedQuantities": {
"0": "707c40bd-4434-41ed-80fd-4ac541a81e85",
"1": "a8d78a4b-b107-4e1c-97b5-5d8abf530ba8",
"2": "a19226cc-9b22-4174-97e3-bb003d4b2746"
}
}
我不熟悉asp.net,但控制器期望參數來獲取一個列表,但你的jQuery發佈JSON字符串...不是一個列表。我會嘗試將參數列表 SelectedQuantities更改爲String SelectedQuantities並將json字符串轉換爲控制器中的LIst。希望幫助 –
Cygnusx1