javascript - Controller ActionResult 方法参数未从 ajax 调用接收表单数据

标签 javascript jquery ajax asp.net-mvc forms

我有一个购买表单来根据模型接收一些数据,但这里 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/

相关文章:

javascript - window.addEventListener 未调用

javascript - 无法读取 CKEditor ASP.NET 的 null 属性 'unselectable'

javascript - 如何使用 Jquery 将图像添加到输入时创建的每条消息中?

javascript - Flask 的 AJAX 请求 CORS 策略错误

ajax - 将 spring 3 mvc 与 GWT 集成的经验?

php - 如何在将变量加载到 cake php 的页面之前将变量附加到所有 javascript 文件?

javascript - xlxs.js "l"单元格超链接对象选项如何工作

javascript - 在 Javascript 中引用窗口

javascript - Jquery 当元素具有类时检查复选框

javascript - 单击动态添加的按钮时,函数调用仅有效一次