Ajax表单未提交给控制器操作

时间:2016-12-24 16:18:24

标签: ajax asp.net-mvc

Ajax表单未提交给控制器操作。这是代码

@using (Ajax.BeginForm("searchCustomers", "Transaction", new { phoneNumber = Model.CustomerMobile }, new AjaxOptions
                {
                    UpdateTargetId = "custList",
                    InsertionMode = InsertionMode.Replace
                }))
                {
                    <div class="col-md-6">
                        <div class="form-group">
                            <label>Customer Mobile No:</label>
                            @Html.TextBoxFor(x => x.CustomerMobile, new { @class = "form-control", id = "custMobile" })
                        </div>
                        @*<div class="form-group">
                            <label>Customer Name</label>
                            @Html.TextBoxFor(x => x.CustomerName, new { @class = "form-control", id = "custName" })
                        </div>*@
                        <input type="submit"  class="btn btn-default" value="Get Customer Details" >
                    </div>

                }

这是控制器动作

 public ActionResult searchCustomers(string phoneNumber)
    {
        if (phoneNumber==null)
        {
            return PartialView(new List<Models.Customer>());
        }

        var c = Database.Session.Query<Models.Customer>()
            .Where(x => x.MobileNumber.Like(phoneNumber) )
            .ToList();
        return PartialView(c);

    }

但是ajax表单没有提交。我已将JavaScript文件添加为捆绑包。我是另一个@Html.Action("searchCustomers", new { phoneNumber = Model.CustomerMobile }),这个叫控制器动作。

1 个答案:

答案 0 :(得分:1)

代码中的一切都很好。 Ajax.Beginform 需要两个javascript文件才能工作。

  1. jquery- {Vaersion}的.js
  2. jquery.unobtrusive-ajax.js
  3. 检查您是否已将这些文件包含在视图中。或者,如果您的视图中有任何LayOut,如果这些javascript文件包含在您的LayOut中。