Я пытаюсь передать данные таблицы из представления в контроллер с помощью java-скрипта, но он не работает. Я передаю свои данные таблицы моему классу модели с помощью java-скрипта.Передача данных таблицы из представления в контроллер с помощью javascript
В моем классе модели есть массив объектов моего общего класса, в которых я заполняю свои данные.
Мой общий класс, как это:
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 Большое спасибо sir ... я был поражен этой проблемой за последние 2 часа .. но теперь это работает ... –
Я также подозреваю, что вы хотите поместить 'id =" tblBom "' в элемент '
', чтобы вы также не отправляли строку заголовка таблицы (но html в вашем вопросе недействителен - не закрывается' '- так не уверен, что это на самом деле) –ответ
Возможно, ваша модель в js не создавалась правильно! вы можете получить свою модель с формой сериализации, а не получать все поля, подобные этому. Для этого сначала определите идентификатор для вашей формы, а в скрипте получите всю форму по id, затем вы можете сериализовать все поля модели, которые находятся в вашей форме, например :
теперь вы можете связать свою модель после URL и отправить его в ваш контроллер, как:
он будет работать.
источник
2016-07-01 10:19:14
OP не имеет элементов управления формой (только таблица с текстом). 'var model = $ (" # Myform "). serialize();' ничего не вернет! –
Смежные вопросы