2016-12-24 55 views
0

Ajax表單不是未提交給控制器操作。我一直試圖解決這個問題超過一個小時。下面是代碼未提交給控制器操作的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表單不提交。我已經將java腳本文件添加爲捆綁包。我有另一個@Html.Action("searchCustomers", new { phoneNumber = Model.CustomerMobile })這個叫做控制器動作。 請詢問更多詳情。 任何人都可以告訴它爲什麼不起作用。任何幫助將不勝感激。提前致謝。

+0

custList元素是否存在於您的DOM中?只是爲了確保,你的控制器被稱爲交易,你確實有適當的路線設置,對嗎? – Guga

+0

是的,有一個custList元素和控制器名稱是正確的 – Sony

回答

1

在你的代碼中一切都很好。有兩個JavaScript文件需要Ajax.Beginform工作。

  1. jquery- {} Vaersion .js文件
  2. jquery.unobtrusive-ajax.js

檢查是否已包括這些文件到您的視圖或沒有。或者如果你的視圖有任何LayOut,如果這些javascript文件包含在你的LayOut中。

+0

我已經將它們添加到捆綁 – Sony

+0

好..那麼它包含在layOut或視圖中嗎? – Anadi

+0

檢查jquery.unobtrusive-ajax.js在那裏? – Anadi