ajax使用pur请求怎么传参,数组参数传递给控制器的方式

开发工具与关键技术:Visual Studio 与jquery、C#

作者:黄灿

撰写时间:2019.7.5

在项目上多多少少都会有些地方会使用到批量增删改的地方,删除可以通过ID获取到每一条数据然后拼接起来传递到控制器,然后在控制器里分割字符串,进行foreach循环删除,新增需要通过for循环获取到数据,但是也不能每获取到一条数据就传参一次数据,所以我把for循环获取到的数据封装到一个数组里面,然后通过数组传递给后台控制器,数组的传参我试过了多种方法:一、jquery.form插件里的ajaxSbumit提交,二、ajax异步请求提交,三、直接post请求提交。三种方法我都尝试过了,最终得到的结果是ajaxSbumit提交是不能把数组传递过去的,获取到数组,控制器也是为null,ajax异步请求提交和直接post请求提交这两种方法是可行的

Javascript循环获取数据把获取的数据添加到数组里的代码:

var PurchaseDetailArray

= new Array();//申明一个数组

var tr = $("#tabDetail").find("tr");

//循环获取表格中的信息

for (var i = 1; i < tr.length - 1; i++) {

//获取采购订单配件明细的信息

var PartsID = $("#PartsID" + i).val();//获取配件ID

var VehicleTypeID = $("#VehicleTypeID" + i).val();//获取车型ID

var Quantity = $("#Quantity" + i).val();//获取数量

var Discount = $("#Discount" + i).val();//获取折扣

var Money = $("#Money" + i).val();//获取金额

var ActualQuantity = $("#ActualQuantity" + i).val();//获取实收数量

var ArrayDetail = new Object();//申明一个对象

ArrayDetail = { PartsID:

PartsID, VehicleTypeID: VehicleTypeID, Quantity: Quantity, Discount: Discount,

Money: Money, ActualQuantity: ActualQuantity };//对象赋值

PurchaseDetailArray.push(ArrayDetail); //使用push()方法想数组里添加对象

}

因为表格中有表头行,索引是从零开始,所以i从1开始,不循环表头行;循环长度i <

tr.length – 1是因为表格里最后一行是计算总值,最后一行也不需要循环,所以循环长度为获取到的表格长度-1减去最后一行

方式一:ajax异步请求提交

Javascript代码:

$.ajax({

url: '@Url.Action("savePurchasrOrder")',

data: { "PurchaseDetailArray ":

PurchaseDetailArray },//数组

// data: ArrayDatil, //对象

dataType: "json",

type: "POST",

//traditional: true,

success: function (returnJson) {

if (returnJson.State) {

layer.confirm(returnJson.Text + '\n' + "是否立即审核该采购订单?\n点击--该订单会立即生效" + '\n' + "点击--只保存当前单据但不生效,只有审核后,该单据才会生效"

+ '\n' + "\n现在未审核,下次打开未审核的单据时,您可以进行审核!", { icon: 3, title: "提示" }, function () {

Audit();//调用审核的方法

});

}

else {

layer.alert(returnJson.Text, { icon: 0, title: "提示" });

}

}

});

ajax请求提交是异步请求,传递的data可以为数组也可以为对象,我传递的是数组

方法二、直接post请求提交

Javascript代码:

$.post("/ProcurementAndSales/PurchaseOrder/savePurchasrOrder",

{

PurchaseDetailArray:

PurchaseDetailArray,

}, function (returnJson) {

layer.close(layIndex);

if (returnJson.State) {

layer.confirm(returnJson.Text + '\n' + "是否立即审核该采购订单?\n点击--该订单会立即生效" + '\n' + "点击--只保存当前单据但不生效,只有审核后,该单据才会生效"

+ '\n' + "\n现在未审核,下次打开未审核的单据时,您可以进行审核!", { icon: 3, title: "提示" }, function () {

Audit();//调用审核的方法

});

}

else {

layer.alert(returnJson.Text, { icon: 0, title: "提示" });

}

});

因为ajax异步请求的请求类型也是post,所以直接使用post请求提交也是可以把数组传递过去的

控制器Controller代码:

因为代码有点长,所以这里只给出循环保存数组的代码

public ActionResult savePurchasrOrder(SYS_PurchaseDetail sysPurchaseDetail, List PurchaseDetailArray)

这里接受数组是要List一个表接收的这个表是你存放数组里的数据的表

//foreach循环保存数组里的数据

foreach (var ArrayData in

PurchaseDetailArray)

{

//查询刚刚新增的采购订单的主键ID,新增的ID肯定在最后一条数据

var selPurchasrOrderID

= (from tbPurcharsOrder in

myModels.PW_PurchaseOrder

select new

{

PurchaseOrderID = tbPurcharsOrder.PurchaseOrderID,

}).ToList();

int listID =

selPurchasrOrderID.LastOrDefault().PurchaseOrderID;

sysPurchaseDetail.PurchaseOrderID = listID;//查出来的主键ID,赋值到明细的外键

//把数组里的数据赋值添加到表中的字段

sysPurchaseDetail.PartsID = ArrayData.PartsID;

sysPurchaseDetail.VehicleTypeID = ArrayData.VehicleTypeID;

sysPurchaseDetail.Quantity = ArrayData.Quantity;

sysPurchaseDetail.Discount = ArrayData.Discount;

sysPurchaseDetail.Money = ArrayData.Money;

sysPurchaseDetail.ActualQuantity = ArrayData.ActualQuantity;

myModels.SYS_PurchaseDetail.Add(sysPurchaseDetail);

myModels.SaveChanges();

}

jquery.form插件里的ajaxSbumit提交是不可行的,所以代码就不列举出来了

标签:控制器,PurchaseDetailArray,sysPurchaseDetail,参数传递,获取,数组,var,returnJson

来源: https://blog.csdn.net/weixin_44542088/article/details/94766873

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PUR(Pairwise Unsupervised Ranking)是一种用于评估多视角聚类结果的评价指标。PUR通过比较在不同视角上的样本对之间的聚类结果,来衡量多视角聚类的一致性。 下面是PUR指标的详细介绍: 1. 概念:PUR指标旨在度量不同视角下的聚类结果之间的一致性。它通过比较在每个视角上的样本对之间的聚类结果,来评估多视角聚类的质量。 2. 原理:PUR指标将每对样本的相对顺序从不同视角中提取出来,并计算这些提取的相对顺序之间的一致性。一致性更高表示多视角聚类结果更为可靠。 3. 计算步骤: - 对于每个视角,计算样本对之间的相对顺序。例如,如果在视角1中,样本A和样本B被分配到同一个聚类,而样本C和样本D被分配到不同的聚类,那么可以得到相对顺序A > B和C > D。 - 对于每个样本对(A,B),将在所有视角中所得到的相对顺序进行比较,并计算其一致性得分。一致性得分越高表示多视角聚类结果越一致。 - 最后,对所有样本对的一致性得分进行平均,得到整体的PUR指标。 4. 优点:PUR指标对于多视角聚类结果的评估比较直观,可以提供一种直观的比较不同聚类结果之间的一致性。 需要注意的是,PUR指标对于视角之间的顺序敏感,因此在使用时需要保持视角的一致性。此外,PUR指标在计算过程中可能存在计算复杂度较高的问题,特别是在大规模据集上。 希望以上信息对您有所帮助。如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值