【问题标题】:Controller ActionResult methods parameter is not receiving form data from an ajax call控制器 ActionResult 方法参数未从 ajax 调用接收表单数据
【发布时间】:2018-12-16 05:07:37
【问题描述】:

我有一个购买表格来根据模型接收一些数据,但这里我在控制器中的 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> 

在控制器中:

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; }
}

【问题讨论】:

  • 你需要展示你的模型
  • 已更新模型数据@StephenMuecke
  • 我觉得这个Link可以回答你的问题。
  • @AminKamalinia,这与 OP 的问题无关
  • 你在 $('Purchase_ReturnForm').serialize() 中缺少#,因为你正在使用 id

标签: javascript jquery ajax asp.net-mvc forms


【解决方案1】:

添加 # 登录您的数据,因为您使用 id 选择器来捕获表单数据。

$('#Purchase_ReturnForm').serialize()

它应该可以按您的预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-16
    • 2016-04-15
    • 2016-10-17
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 1970-01-01
    相关资源
    最近更新 更多