我有一个购买表单来根据模型接收一些数据,但这里 Controller 中的purchase_return对象没有接收任何数据。它正在接收productId 0 和productNm null。谁能指出这里发生了什么事吗? html:
<form id="Purchase_ReturnForm">
<div>
<table>
<tr>
<td>
@Html.LabelFor(model => model.ProductId)
</td>
<td>
@Html.TextBoxFor(model => model.ProductId)
</td>
<td>
<input type="button" id="btnFind" value="Find" />
</td>
</tr>
<tr>
<td>
@Html.LabelFor(model => model.ProductNm)
</td>
<td>
<span id="edit">
@Html.TextBoxFor(model => model.ProductNm)
</span>
</td>
</tr>
</table>
</div>
</form>
脚本:
<script>
$(document).ready(function () {
$('#btnFind').click(function () {
var data = $('Purchase_ReturnForm').serialize();
$.ajax({
type: 'Post',
url: '/Purchase_Return/FindProductInvoice',
data: data,
success: function () {
}
})
});
});
</script>
在 Controller 中:
public ActionResult FindProductInvoice(Purchase_Return purchase_Return)
{
return View();
}
还有模型
public class Purchase_Return
{
//public DateTime ReturnDt { get; set; }
//public int ReturnSl { get; set; }
//public DateTime PurchaseDt { get; set; }
//public int PurchaseSl { get; set; }
//public double TotReturnAmt { get; set; }
//public double TotVat { get; set; }
//public double TotDiscount { get; set; }
//public int CustomerSupplyId { get; set; }
[Display(Name="Product")]
public int ProductId { get; set; }
public string ProductNm { get; set; }
//public double PurchaseRt { get; set; }
//public double PurchaseQty { get; set; }
//public double ProductDisAmt { get; set; }
//public double ProductVat { get; set; }
//public string ReturnNote { get; set; }
//public int InsertUserId { get; set; }
}
最佳答案
在您的数据中添加 # 符号,因为您使用 id 选择器来捕获表单数据。
$('#Purchase_ReturnForm').serialize()
它应该按您的预期工作。
关于javascript - Controller ActionResult 方法参数未从 ajax 调用接收表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229892/