gpt4 book ai didi

javascript - MVC 如何将数组(Guid CustomerIDs)和单个值传递给 Controller

转载 作者:行者123 更新时间:2023-12-03 12:35:37 25 4
gpt4 key购买 nike

我正在使用 JavaScript 和 ajax 将数组和单个值传递给 Controller ​​,当调用 Controller 方法时,传入的是单个值而不是(customerID 的数组),我想知道为什么,这里是代码!

这是我的 JavaScript 和 ajax 调用:

var arrayOfCustomerID = ['11111111 - 1111 - 1111 - 1111 - 111111111112', '4b732df8-3bbc-4eab-9bf1-da98cc46d527' ,
'3e74adeb-31a8-4d6f-a66b-a34500c3acc0',' 14897bf4-f5d0-4548-a74d-a34f00ae9cad'];

var version = '3.0';

$.ajax({
url: '/Updates/UpdateCustomers',
type: "POST",
datatype: "json",
traditional: true,
data: {
CustomerIDs: JSON.stringify(arrayOfCustomerID),
Version: version
},
success: function (data) {
alert("success");
}
});

这是我的课:

public class SelectedCustomersWithVersion 
{
public List<Guid> CustomerIDs { get; set; }

public string version { get; set; }
}

最后是我的 Controller 方法:

[HttpPost]
public ActionResult UpdateCustomers(SelectedCustomersWithVersion model)
{
IList a = model.CustomerIDs.ToList();
var b = model.version;
return view();
}

当我在 Controller 模型上设置断点时,我得到了 model.CustomerIds:计数 = 0, 模型.版本:“3.0”

我不知道为什么我的 Customerids= 0 计数, 代码有问题吗? 感谢您的帮助!

最佳答案

这是由于您将参数传递给操作方法的方式。在您当前的方法中,您将它们作为一个参数发送,该参数作为逗号分隔的字符串接收, Binder 不会将其转换为 List<Guid> .

以下 Fiddler 捕获显示了您如何发送参数:

enter image description here

为了让模型绑定(bind)器正确绑定(bind) List<T>参数需要以相同的名称或分配的索引单独发送。

例如,以下两种方法都可以:

?customerIDs=1111...&customerIDs=4b73...&customerIDs=3e...

?customerIDs[0]=1111...&customerIDs[1]=4b73...&customerIDs[2]=3e...

在第二个示例中,请注意索引必须从零开始且没有间隙。

为了让它工作,您可以将您的 jQuery 代码更改为:

arrayOfCustomerID = [];
arrayOfCustomerID[0] = '11111111 - 1111 - 1111 - 1111 - 111111111112';
arrayOfCustomerID[1] = '4b732df8-3bbc-4eab-9bf1-da98cc46d527';
arrayOfCustomerID[2] = '3e74adeb-31a8-4d6f-a66b-a34500c3acc0';
arrayOfCustomerID[3] = ' 14897bf4-f5d0-4548-a74d-a34f00ae9cad';

var version = '3.0';

$.ajax({
url: '/api/values',
type: "POST",
datatype: "json",
traditional: true,
data: {
CustomerIDs: arrayOfCustomerID,
Version: version
},
success: function (data) {
alert("success");
}
});

这将像这样发送参数:

enter image description here

然后它将成功绑定(bind)到您的模型:

enter image description here

最后一点,我必须从您的第一个 Guid 中删除空格为了让它绑定(bind)。

关于javascript - MVC 如何将数组(Guid CustomerIDs)和单个值传递给 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25241561/

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