2016-09-13 7 views
0

私はajaxから1つのwebapiを呼び出すと、単純な文字列またはintとは異なる何かを返すと、要求は依然として保留中です。ここWebApi 2 - Json要求保留

私のjavascript:

var endPoint = "/api/services/attivita/set"; 
$.ajax({ 
    url: endPoint, 
    data: JSON.stringify(
     { 
     'id': attivita.IDTipoAttivita, 
     'descrizione': $('#Descrizione').val() 
     } 
    ), 
    dataType: 'json', 
    contentType: "application/json;charset=utf-8", 
    processData: false, 
    type: 'post', 
    success: function (data) { 
     console.log('ok'); 
    }, 
    error: function (data) { 
     console.log('ko'); 
    } 
}); 

、ここWEBAPIコード

[System.Web.Http.HttpGet] 
    [System.Web.Http.HttpPost] 
    [System.Web.Http.Route("api/services/attivita/set")] 
    public TipoAttivita SetAttivita([FromBody] dynamic obj) 
    { 
     var id = (int)obj.id; 
     var descrizione = obj.descrizione.ToString(); 
     var nuovo = id == -1; 

     var attivita = new TipoAttivita() 
     //do stuff of attivita object 
     this.CurrentDb.TipoAttivita.Add(attivita); 
     this.CurrentDb.SaveChanges(); 

     return (attivita); 
    } 

私が変更した場合に、 "公共のint型...." と "リターン(1);"関数の最後にはすべて正常に動作します。私はこの

var jsonFormatter = new JsonMediaTypeFormatter 
     { 
      SerializerSettings = {ReferenceLoopHandling = ReferenceLoopHandling.Ignore} 
     }; 
     jsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); 

     config.Formatters.Clear(); 
     config.Formatters.Add(jsonFormatter); 

任意のアイデアを持っているWebApiConfig.csで

? どうもありがとう

+0

を返すあなたはSetAttivitaアクションメソッド内のブレークポイントを設定したい、とデバッグ。 – Win

+0

TipoAttivitaのソースコードを表示できますか? –

+0

TipoAttivitaはエンティティフレームワーク生成モデルのオブジェクトであり、デバッグモードでは機能は終了しますが、ブラウザ上では応答はありません –

答えて

0

はそれをIHttpActionResultに戻り値の型を変更しようとOk(attivita)

+0

が保留中です –