我试图解析一个简单的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