2016-12-24 6 views
0

コントローラのアクションにAjaxフォームが送信されていません。私はこれを1時間以上修正しようとしてきました。ここでコードここでコントローラのアクションに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

コード内に問題はありません。 Ajax.Beginformには、2つのjavascriptファイルが必要です。

  1. jquery- {Vaersion}は、あなたのビューまたはしないようにそれらのファイルが含まれているかどうか
  2. jquery.unobtrusive-ajax.js

チェックを.jsファイル。また、LayOutにjavascriptファイルが含まれている場合は、ビューにLayOutがあるかどうかを確認してください。

+0

バンドルに追加しました – Sony

+0

well ..それはlayOutまたはビューに含まれていますか? – Anadi

+0

jquery.unobtrusive-ajax.jsにチェックが入っていますか? – Anadi

関連する問題