我正在尝试使用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)
{
}
当控制器操作收到数据时,我没有为我的数据编写代码。 我主要担心的是如何将我的表的数据从视图发送到我的控制器操作。
请帮忙。 提前致谢
答案 0 :(得分:0)
也许你在js的模型没有创造出来! 您可以使用序列化表单获取模型,而不是获取每个字段。为此,首先为表单定义id,然后在脚本中通过id获取整个表单,然后您可以序列化表单中所有模型字段,如:
var model=$("#Myform").serialize();
现在您可以在网址后绑定模型并将其发送到控制器,如:
$.ajax({
url:'@Url.Action("AdvancePurchase","CreateBid")?'+model,
type: "POST",
success: function (data) {
alert('Document Saved.');
}
});
它会起作用。