gpt4 book ai didi

c# - asp mvc Controller 从 ajax 接收空值

转载 作者:行者123 更新时间:2023-12-01 02:54:56 25 4
gpt4 key购买 nike

已经尝试了找到的方法,但似乎仍然无法解决问题。我通过 Jquery Aja 传递对象列表,但 Controller 似乎正在接收空值(它正在识别列表计数)。

jquery代码如下:

var xmlids = Array();

for (var i = 0; i < orderId.length; i++) {
var xdata = {
"XmlOid": "" +orderId[i] + "",
"CourierCompany": $("#CourierCompany_"+orderId[i]).val() ,
"CourierService": $("#CourierService_" + orderId[i]).val(),
"StoreId" : storeId
};
xmlids.push(xdata);
}

var data = { invoices: xmlids };


$.ajax({
url: purl,
type: "POST",
dataType: "json",
//contentType: "application/json;",
async: false,

data: data,

Controller 参数是:

public JsonResult ProcessSaleOrder(List<XMLInvoiceGeneration> invoices)

对象如下:

public class XMLInvoiceGeneration
{
public Int64 XmlOid { get; set; }
public string CourierCompany { get; set; }
public string CourierService { get; set; }
public Int64? StoreId { get; set; }
}

感谢任何帮助。

最佳答案

我尝试重现您的问题。

我创建了一个新的 ASP.NET MVC Web 应用程序,并在 Home Controller 的索引 View 中添加了以下内容

<input type="button" id="send" value="Send" />
@section scripts{
<script type="text/javascript">
$(function () {
$("input#send").on("click", function () {
var xmlids = Array();

for (var i = 0; i < 2; i++) {
var xdata = {
"XmlOid": 1,
"CourierCompany": "TempData",
"CourierService": "Temp",
"StoreId": 2
};

xmlids.push(xdata);
}

var data = { invoices: xmlids };

$.ajax({
url: "/Home/ProcessSaleOrder",
type: "POST",
dataType: "json",
async: false,
data: data
});
});
})
</script>
}

我基本上创建了一些临时数据,但仍尝试使用您最初的想法。我的 Controller 如下所示:

[HttpPost]
public ActionResult ProcessSaleOrder(List<XMLInvoiceGeneration> invoices)
{
return new EmptyResult();
}

当我单击按钮并在 Controller 中命中断点时,invoices 参数包含 2 个项目,均具有我在 JavaScript 代码中设置的值。我不确定为什么您的代码不起作用,但也许您可以使用我的代码作为模板来帮助您缩小问题范围。

关于c# - asp mvc Controller 从 ajax 接收空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412406/

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