日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/1/23 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的ajax使用pur请求怎么传参,数组参数传递给控制器的方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。