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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

MVC中实现订单表和订单详细表联动新增的一种方法

發(fā)布時(shí)間:2025/4/14 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MVC中实现订单表和订单详细表联动新增的一种方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

直接上視圖的代碼:

html代碼表格:

View Code 1 <body> 2 <input type="button" value="保存" onclick="save()" /> 3 <hr /> 4 客戶: 5 <input type="text" id="kehuxingming" /> 6 <hr /> 7 <table id="detailsTable"> 8 <tr> 9 <td>產(chǎn)品ID:</td> 10 <td> 11 <input type="text" name="productId" /></td> 12 <td>名稱:</td> 13 <td> 14 <input type="text" name="prductName" /></td> 15 <td>數(shù)量:</td> 16 <td> 17 <input type="text" name="quantity" /></td> 18 </tr> 19 <tr> 20 <td>產(chǎn)品ID:</td> 21 <td> 22 <input type="text" name="productId" /></td> 23 <td>名稱:</td> 24 <td> 25 <input type="text" name="prductName" /></td> 26 <td>數(shù)量:</td> 27 <td> 28 <input type="text" name="quantity" /></td> 29 </tr> 30 </table> 31 </body>

js代碼:

View Code 1 <script src='@Url.Content("~/Scripts/jquery-1.7.1.min.js")'></script> 2 <script src='@Url.Content("~/Scripts/postify.js")'></script> 3 <script> 4 //保存方法 5 function save() { 6 7 //聲明局部變量,構(gòu)造json格式數(shù)據(jù) 8 var data = {}; 9 //為data動(dòng)態(tài)添加屬性 10 data.model = {}; 11 data.detailsList = []; 12 13 //存放訂單表數(shù)據(jù) 14 data.model.KehuXingming = $("#kehuxingming").val(); 15 16 //each隱式迭代 17 $.each($("#detailsTable tr"), function (i, o) { 18 19 //將dom元素轉(zhuǎn)換為Jquery對(duì)象 20 var obj = $(o); 21 //構(gòu)造訂單詳細(xì)表數(shù)據(jù)數(shù)組:[{}] 22 23 var detail = {}; 24 //用find方法找到input標(biāo)簽對(duì)應(yīng)產(chǎn)品屬性,賦值給detail動(dòng)態(tài)創(chuàng)建的屬性 25 detail.ProductID = obj.find("input[name='productId']").val(); 26 detail.ProductName = obj.find("input[name='prductName']").val(); 27 detail.Quantity = obj.find("input[name='quantity']").val(); 28 29 //將detail加入data.detailList中 30 data.detailsList.push(detail); 31 32 }); 33 //此處獲得構(gòu)造出來(lái)的data要經(jīng)過(guò)一個(gè)postify.js的特殊處理,后臺(tái)才能接收到這個(gè)構(gòu)造成json格式的數(shù)據(jù) 34 $.post('@Url.Action("SaveSaleOrder")', $.postify(data), function (html) { 35 if (html.result) { 36 alert("成功"); 37 } else { 38 alert(html.msg); 39 } 40 }); 41 } 42 </script>

js幫助:

View Code 1 $.postify = function (value) { 2 var result = {}; 3 4 var buildResult = function (object, prefix) { 5 for (var key in object) { 6 7 var postKey = isFinite(key) 8 ? (prefix != "" ? prefix : "") + "[" + key + "]" 9 : (prefix != "" ? prefix + "." : "") + key; 10 11 switch (typeof (object[key])) { 12 case "number": case "string": case "boolean": 13 result[postKey] = object[key]; 14 break; 15 16 case "object": 17 if (object[key] && object[key].toUTCString) 18 result[postKey] = object[key].toUTCString().replace("UTC", "GMT"); 19 else { 20 buildResult(object[key], postKey != "" ? postKey : key); 21 } 22 } 23 } 24 }; 25 26 buildResult(value, ""); 27 28 return result; 29 };

控制器方法:

View Code 1 #region 接受Ajax請(qǐng)求過(guò)來(lái)的json格式數(shù)據(jù)+JsonResult SaveSaleOrder(SaleOrder model, List<SaleOrderDetail> detailsList) 2 /// <summary> 3 /// 接受Ajax請(qǐng)求過(guò)來(lái)的json格式數(shù)據(jù) 4 /// </summary> 5 /// <param name="model">訂單實(shí)體</param> 6 /// <param name="detailsList">訂單詳細(xì)實(shí)體</param> 7 /// <returns></returns> 8 public JsonResult SaveSaleOrder(SaleOrder model, List<SaleOrderDetail> detailsList) 9 { 10 try 11 { 12 //創(chuàng)建訂單詳細(xì)的xml對(duì)象 13 var detailsXml = detailsList.Select(c => new XElement("Detail", 14 new XAttribute("ProductID", c.ProductID), 15 new XAttribute("ProductName", c.ProductName), 16 new XAttribute("Quantity", c.Quantity) 17 )).ToList(); 18 /*生成的xml格式為下 19 <Detail ProductID=c.ProductID ProductName=c.ProductName Quantity=c.Quantity/> 20 */ 21 22 //創(chuàng)建訂單的xml對(duì)象 23 var xml = new XElement("ROOT", new XElement("SaleOrder", new XAttribute("KehuXingming", model.KehuXingming), detailsXml)); 24 /* 25 SaveSaleOrder '<ROOT> 26 <SaleOrder KehuXingming="12312"> 27 <Detail ProductID="123" ProductName="123" Quantity="1231" /> 28 <Detail ProductID="1" ProductName="123" Quantity="2312" /> 29 <Detail ProductID="123" ProductName="123" Quantity="3" /> 30 <Detail ProductID="123" ProductName="123" Quantity="123" /> 31 </SaleOrder> 32 </ROOT>' 33 */ 34 35 //將xml轉(zhuǎn)換為字符串 36 string xmlStr = xml.ToString(); 37 //linq to sql 38 DataClasses1DataContext db = new DataClasses1DataContext(); 39 //保存 40 db.SaveSaleOrder1(xmlStr); 41 return Json(new { result = true }); 42 } 43 catch (Exception ex) 44 { 45 //記錄錯(cuò)誤日志 ex 46 return Json(new { result = false, msg = "保存失敗!" }); 47 } 48 } 49 #endregion

存儲(chǔ)過(guò)程:

View Code 1 USE [TEST] 2 GO 3 /****** Object: StoredProcedure [dbo].[SaveSaleOrder] Script Date: 2013/1/4 星期五 1:08:06 ******/ 4 SET ANSI_NULLS ON 5 GO 6 SET QUOTED_IDENTIFIER ON 7 GO 8 ALTER PROCEDURE [dbo].[SaveSaleOrder] 9 @xml nvarchar(max) 10 AS 11 BEGIN 12 DECLARE @idoc int 13 14 --把字符串解析成xml存到內(nèi)存中,然后把這個(gè)xml對(duì)象在內(nèi)存中的地址返回給@idoc 15 EXEC sp_xml_preparedocument @idoc OUTPUT, @xml 16 17 --創(chuàng)建臨時(shí)表 18 create table #saleOrder (kehuxingming nvarchar(50)) 19 create table #saleOrderDetails (productId int,productName nvarchar(50),quantity int) 20 21 --從xml里面取到主表的數(shù)據(jù) 22 INSERT INTO #saleOrder(kehuxingming) 23 SELECT KehuXingming 24 FROM OPENXML (@idoc, '/ROOT/SaleOrder',1) 25 WITH (KehuXingming nvarchar(50)) 26 27 --從xml里面取到從表的數(shù)據(jù) 28 INSERT INTO #saleOrderDetails(productId ,productName ,quantity ) 29 SELECT ProductID,ProductName,Quantity 30 FROM OPENXML (@idoc, '/ROOT/SaleOrder/Detail',1) 31 WITH (ProductID int,ProductName nvarchar(50),Quantity int) 32 33 --把主記錄臨時(shí)表 插入到 銷售單的主表 34 INSERT INTO saleOrder(kehumingchen) 35 SELECT kehuxingming from #saleOrder 36 37 declare @id int 38 set @id=@@IDENTITY 39 40 --把從表臨時(shí)表 插入到 銷售單的從表 41 INSERT INTO saleOrderDetails(saleOrderId, productId, productName, quantity) 42 SELECT @id,productId ,productName ,quantity from #saleOrderDetails 43 44 drop table #saleOrder 45 drop table #saleOrderDetails 46 47 END

然后就實(shí)現(xiàn)了訂單表和訂單詳細(xì)表的新增了。。

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/jerrybing/archive/2013/01/04/2843546.html

總結(jié)

以上是生活随笔為你收集整理的MVC中实现订单表和订单详细表联动新增的一种方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 99久久国产宗和精品1上映 | 久久女人网 | 超碰97观看 | 暖暖日本在线视频 | 亚洲啪av永久无码精品放毛片 | 午夜神马影院 | 91人人草 | 亚洲精选一区 | 国产又粗又猛又黄又爽无遮挡 | 成人深夜影院 | 偷拍久久久 | 校园春色在线观看 | 最新在线黄色网址 | 精品一区二区三区三区 | 狠狠涩 | 献给魔王伊伏洛基亚吧动漫在线观看 | 成年人网站黄 | 亚洲av日韩精品久久久久久久 | 少妇一区二区三区 | 午夜性福利视频 | 久久888| 私人毛片| 182tv午夜| 国产又大又黄又粗 | 婷婷综合亚洲 | 成人三级在线看 | 美女张开腿流出白浆 | 亚洲 欧洲 日韩 | 伊人久久久久噜噜噜亚洲熟女综合 | 成人性视频免费网站 | 国产精品二 | 成人免费一级视频 | 午夜少妇久久久久久久久 | 久久精品免费在线观看 | 十大污视频| a中文在线 | 无遮挡黄色| 伊人亚洲精品 | av导航在线 | 91影音| 懂色一区二区三区免费观看 | 美女视频久久久 | 黄金网站在线观看 | 日韩久久一区 | 成人国产视频在线观看 | 杨幂一区二区国产精品 | 久久网一区 | 国产一二三区在线 | 国产又粗又猛又爽又黄的视频小说 | 国产69久久精品成人看 | 蜜臀av无码精品人妻色欲 | 男生把女生困困的视频 | 久久精品一二三 | 精品动漫一区二区 | 天天干夜夜嗨 | 黄色国产免费 | 尹人香蕉 | 99久久国产视频 | 成人精品视频在线观看 | 91中文在线| 麻豆出品 | 国内免费av | 中文字幕1区2区3区 www.com黄色片 | 国产日日夜夜 | 美女福利视频在线观看 | 91岛国| 久久久av一区二区三区 | 借种(出轨高h) | 亲切的金子餐桌片段的金子 | 黄色大片在线看 | 岛国av网址 | 成人99| 青青毛片| 婷婷影视 | av一二三区 | 91网站在线看 | 欧美色啪| 91精品国产91久久久久久黑人 | 午夜在线播放视频 | 蜜桃臀一区二区三区 | 亚洲黄色在线看 | 中文字幕日本一区 | 短视频在线观看 | 日本免费一二三区 | 欧美视频在线观看免费 | 中文字幕有码在线观看 | 久久av影视 | 在线视频你懂得 | 韩国三级hd两男一女 | 亚洲中文无码久久 | 一级丰满大乳hd高清 | 日本妇女毛茸茸 | 国产青青 | 国产一区二区三区在线免费 | 69久人妻无码精品一区 | jizz俄罗斯 | 中文字幕第11页 | 黄色一区二区三区四区 | 日韩欧美视频 |