2016-06-15 7 views
0

Imは、単純なjQueryのAjaxのコールバックをしようとして働いていないMVC AJAX QUERYコールバックは

$(document).ready(function() { 
     $('#btnClient').click(function (e) { 
      e.preventDefault(); 
      var txtClient1 = $('#txtClient').val(); 

      $.ajax({ 
       type: "POST", 
       url: '/VistasController/AROrders', 
       contentType: "application/json; charset=utf-8", 
       data: { txtClient: txtClient1}, 
       dataType: "json", 
       success: successFunc, 
       error: errorFunc 
      }); 

      function successFunc(data) { 
       alert("Sucess"); 
      } 

      function errorFunc(result) { 
       alert("Error" + result.responseText); 
      } 
     }); 
    }); 

これは、背後にある私のASP.net C#のコードです:

[HttpPost] 
    public ActionResult AROrders(string txtClient) 
    { 
      DataTable dtClients = clientData(txtClient); 

      System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
      List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>(); 
      Dictionary<string, object> row; 
      foreach (DataRow dr in dtClientes.Rows) 
      { 
       row = new Dictionary<string, object>(); 
       foreach (DataColumn col in dtClients.Columns) 
       { 
        row.Add(col.ColumnName, dr[col]); 
       } 
       rows.Add(row); 
      } 
      string ResultadoJSON = serializer.Serialize(rows); 

      return this.Content(ResultadoJSON, "application/json"); 

    } 

通常のポストバックを実行すると動作しますが、Jqueryで「リソースが見つかりません」というエラーが表示されます

I ha veはglobal.asaxでルートを設定しようとしました

routes.MapRoute(
      "", 
      "{controller}/{action}/{id}", 
      new { controller = "Vistas", action = "AROrders", txtClient = UrlParameter.Optional } 
     ); 

また、URLを変更せずに試してみました。

Jqueryに問題はありますか?

+1

はいつも 'Url.Action()'メソッドを使用しますあなたのURLは正しく生成されています - 'url: '@ Url.Action(" AROrders "、" Vistas ")'、'。また、あなたは 'contentType:" application/json; charset = utf-8 "、" –

答えて

2

URLに接尾辞Controllerを指定しないでください。 ので、代わりの:

url: '/VistasController/AROrders', 

あなたがそうするために

url: '/Vistas/AROrders', 
1

jqueryのにchnageそれが文字列化しません。

$.ajax({ 
      type: "POST", 
      url: '/VistasController/AROrders', 
      contentType: "application/json; charset=utf-8", 
      data: JSON.stringify({ txtClient: txtClient1}), 
      dataType: "json", 
      success: successFunc, 
      error: errorFunc 
     }); 
関連する問題