gpt4 book ai didi

javascript - 将字符串数组解析为 MVC 方法

转载 作者:行者123 更新时间:2023-11-30 18:40:04 24 4
gpt4 key购买 nike

我正在尝试将一个简单的 guids/strings 数组解析为 jsonjson 用作对我的 Controller 的后调用的参数。

我一直在尝试很多不同的事情,但我就是无法让 Controller 方法看到我的列表。

数组由复选框值构建:

$('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
}

}
});
});
});

我的 Controller 方法如下所示:

public ActionResult QuantitySummaryView(Guid id, List<String> SelectedQuantities)

但是列表总是空的。我认为这是因为 JSON 列表不包含直接位于其下方的 GUID 数组。

你能帮我把它推到位吗?

JSON(如 Chrome 开发工具所见)如下所示:

{
"SelectedQuantities": {
"0": "707c40bd-4434-41ed-80fd-4ac541a81e85",
"1": "a8d78a4b-b107-4e1c-97b5-5d8abf530ba8",
"2": "a19226cc-9b22-4174-97e3-bb003d4b2746"
}

最佳答案

我觉得你连载的次数太多了,你的层次也太多了。试试这个:

我删除了其中一个 SelectedQuantities,并更改了 ajax 调用。

$(document).ready(function () {
$('#Summarize').click(function () {
var arrayJson = {};
for (i in selected) {
arrayJson[i] = selected[i];
}

var json = {
SelectedQuantities: arrayJson
};

$.ajax({
url: "/MVC/Physical/QuantitySummaryView/@Model.TopID",
type: "POST",
data: JSON.stringify(json),
dataType: "json",
contentType: 'application/json'
});
});
});

此外,试试 Firebug,它会显示您想要的已传递到服务器,因此您可以确保创建和传递的 json 是正确的。

关于javascript - 将字符串数组解析为 MVC 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7108166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com