![](/img/trans.png)
[英]How to insert HTML table data into SQL Server in a single batch by using jquery ajax and structured parameter with ASP.NET MVC controller
[英]How to insert data to details Table in mvc core using (Jquery) or (Jquery and Ajax)
长话短说,我正在工作的公司决定继续使用核心技术进行开发,作为前winforms开发人员,我不熟悉Web概念,并且无法将详细信息表保存到主表。 任何帮助都非常感谢。
我有两个表,一对多关系
TOURNAMENTS_M (Master)
TOURNAMENTS_D (Detail)
我已经编辑了脚手架的“创建”页面,以包括要输入的明细表的字段。
我什至设法使用Jquery(可视地)为添加的详细信息记录更新了表。
我在将这些信息保存到数据库时遇到了麻烦,但是我一直在使用不同的方法来学习一些不同的教程。但是,使用这两种方法都无法成功...
第一种方法是使用Jquery和Ajax方法。 我已经看到了一些示例,这些示例中的人们通过模式窗口保存数据,并且单击保存时会在gridview上更新数据,因此据我所知(如果我错了,请纠正我)Ajax用于重新加载数据而不刷新页面,并且将数据回传到控制器。 就我而言,我不确定这是否是正确的方法,因为主控件和子控件都在同一页面上。
第二种方法只是使用jQuery
在这种方法中,我在控制器中的Create方法和jquery方法如下
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(TOURNAMENTS_M pTournamentsM)
{
if (ModelState.IsValid)
{
_context.Add(pTournamentsM);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(pTournamentsM);
}
function GetCurrentDetail() {
var TD_LEVEL = $("#TD_LEVEL").val();
var TD_SB = $("#TD_SB").val();
var TD_BB = $("#TD_BB").val();
var tourDetail = {
"TD_LEVEL": TD_LEVEL,
"TD_SB": TD_SB,
"TD_BB": TD_BB
};
return tourDetail;
}
//点击“添加游览详细信息”按钮功能时的触发功能CreateRowForTourDetails(){
var current = GetCurrentDetail();
var index = $("#detailsTable").children("tr").length;
var indexcell = "<td style='display:none'> <input type='hidden' id='index" + index + "' name='TOURNAMENTS_D.index' value = '" + index + "' /> </td>";
var TD_LEVEL = "<td> <input type='hidden' id='TD_LEVEL" + index + "' name='TOURNAMENTS_D[" + index + "].TD_LEVEL ' value = '" + current.TD_LEVEL + "' />" + current.TD_LEVEL + " </td>";
var TD_SB = "<td> <input type='hidden' id='TD_SB" + index + "' name='TOURNAMENTS_D[" + index + "].TD_SB ' value = '" + current.TD_SB + "' />" + current.TD_SB + " </td>";
var TD_BB = "<td> <input type='hidden' id='TD_BB" + index + "' name='TOURNAMENTS_D[" + index + "].TD_BB ' value = '" + current.TD_BB + "' />" + current.TD_BB + " </td>";
//var removeButton = "<td><a id ='myRemove' data-itemId='0' class='btn btn-primary'>Remove</a></td>";
var tourDetail = "<tr>" +indexcell + +TD_LEVEL + TD_SB + TD_BB + "</tr>";
var detailsTableBody = $("#DetailsTableBody");
detailsTableBody.append(tourDetail);
}
通过这种方法,当我将断点放置在控制器的Create函数中时,我可以看到TOURNAMENTS_D的计数增加了,但是该值为null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.