【发布时间】:2017-11-15 20:34:26
【问题描述】:
我坚持一件事。我在复选框中有一个 2 网格。当我选择该复选框时,我想发布该行数据值,如数组或列表。实际上,当我发送一个列表项时,它会正确发布,但是当我收到多个列表项时,它无法发布值。
这里是我的 ajax 请求以及如何选择行值函数
var grid = $("#InvoceGrid").data('kendoGrid');
var sel = $("input:checked", grid.tbody).closest("tr");
var items = [];
$.each(sel, function (idx, row) {
var item = grid.dataItem(row);
items.push(item);
});
var grid1 = $("#DeliveryGrid").data('kendoGrid');
var sel1 = $("input:checked", grid1.tbody).closest("tr");
var items1 = [];
$.each(sel1, function (idx, row) {
var item1 = grid1.dataItem(row);
items1.push(item1);
});
$.ajax({
url: '../HeadOffice/CreateInvoice',
type: 'POST',
data: JSON.stringify({ 'items': items, 'items1': items1, 'refnum': refnum }),
contentType: 'application/json',
traditional: true,
success: function (msg) {
if (msg == "0") {
$("#lblMessageInvoice").text("Invoices have been created.")
var del = $("#InvoiceOKWindow").data("kendoWindow");
del.center().open();
var del1 = $("#InvoiceDetail").data("kendoWindow");
del1.center().close();
$("#grdDlvInv").data('kendoGrid').dataSource.read();
}
else {
$("#lblMessageInvoice").text("Problem occured. Please try again later.")
var del = $("#InvoiceOKWindow").data("kendoWindow");
del.center().open();
return false;
}
}
});
这是我的 C# 部分
[HttpPost]
public string CreateInvoice(List<Pm_I_GecisTo_Result> items, List<Pm_I_GecisFrom_Result> items1, string refnum)
{
try
{
if (items != null && items1 != null)
{
//do Something
}
else
{
Log.append("Items not selected", 50);
return "-1";
}
}
catch (Exception ex)
{
Log.append("Exception in Create Invoice action of HeadOfficeController " + ex.ToString(), 50);
return "-1";
}
}
但是当我只发送一行时它可以工作,但是当我尝试发送多个值时它会发布 null 并产生问题
我该如何解决这个问题?你有什么想法吗?
编辑
我忘了说,但是这种方式在本地工作,但是当我更新服务器时无法正常工作。
【问题讨论】:
-
尝试删除繁体:true
-
这是 WebAPI 吗?如果它是 WebAPI,您的
CreateInvoice上不能有多个参数绑定只有 1,请使用[FromBody]属性。看一看:docs.microsoft.com/en-us/aspnet/web-api/overview/… -
@12seconds 不,这不是 WebAPI,这是 MVC Web 应用程序
-
@johnny5 不工作:(
-
你会遇到很多问题。相反,创建一个封装所有这些的单个模型并根据 including your lists 进行绑定。
标签: javascript c# jquery ajax asp.net-mvc