【发布时间】:2016-06-30 06:37:06
【问题描述】:
我正在尝试使用 java 脚本将表数据从视图传递到控制器,但它不起作用。我正在使用 java-script 将表数据传递给我的模型类。
我的模型类有我的共享类的对象数组,我在其中填充我的数据。
我的共享课是这样的:
public class BomItemsDTO : IBomItems
{
public int stockitemid { get; set; }
public string itemname { get; set; }
public int quantity { get; set; }
public string description { get; set; }
public string approvedsupplier { get; set; }
public int priceperunit { get; set; }
public int totalprice { get; set; }
}
我的模型类是这样的:
public class BiddingSecondStepModel
{
public BomItemsDTO[] BomItems { get; set; }
}
我的 javascript 代码是这样的:
<script type="text/javascript">
$("#btnsendtoadvancepurchase").on('click', function () {
var BomItems = [];
$('#tblBom tr').each(function (row, tr) {
BomItems.push({
itemcode: $(tr).find('td:eq(0)').text().trim(),
desc: $(tr).find('td:eq(1)').text(),
quant: $(tr).find('td:eq(2)').text(),
supplier: $(tr).find('td:eq(3)').text(),
});
});
var model = {
BomItems: BomItems
};
debugger;
$.ajax({
url:'@Url.Action("AdvancePurchase", "CreateBid")',
type: "POST",
contentType: 'application/json; charset=utf-8',
data: MODEL,
dataType:'json',
success: function (data) {
alert('Document Saved.');
}
});
});
</script>
我的html表格是这样动态生成的:
<table class="TableID2" id="tblBom">
<thead>
<tr>
<th>Item Code</th>
<th>Description</th>
<th>Quantity</th>
<th>Approved Supplied</th>
<th></th>
</tr>
<tr><td>
TD6915PLBOXSTRG00
</td><td>456 n6</td><td>789456</td><td>aa</td><td><img src="../Content/Images/deleterow.png" class="btnDelete"></td></tr><tr><td>
SG0242108JAD1HG10
</td><td>125 v4</td><td>456123</td><td>aa</td><td><img src="../Content/Images/deleterow.png" class="btnDelete"></td></tr></thead>
</table>
我的控制器操作是这样的:
[HttpPost]
public ActionResult AdvancePurchase(BiddingSecondStepModel data)
{
}
当控制器操作接收到数据时,我还没有编写代码来处理我的数据。 我主要关心的是如何将我的表格数据从视图发送到我的控制器操作。
请帮忙。 提前致谢
【问题讨论】:
-
使用
data: JSON.stringify({ data: model }),您还需要更改所有 javascript 属性名称以匹配模型属性名称 - 例如stockitemid(不是itemcode)、description(不是desc)等 -
@StephenMuecke 非常感谢先生...我在过去 2 小时内遇到了这个问题...但现在它正在工作...
-
我还怀疑您想将
id="tblBom"放在<tbody>元素上,这样您就不会发送表格标题行(但您问题中的 html 无效 - 没有关闭 @ 987654333@ - 所以不确定它到底是什么) -
实际上我正在使用javascript动态添加行,因此我的所有行都添加到 中。 的关闭也存在于那里,但由于添加了新行,它被转移到添加了最后一行。A
<thead>用于表格标题!使用正确的元素:)
标签: javascript ajax asp.net-mvc-4