1

I持っている私のMVCコントローラで、次の処置:これは実行され、ID、私はそれはそれはdoesnの42しかし、私の角度コードとして例えばフィドラーに戻って参照を返し角度GETデータ

[HttpPost] 
public JsonResult Save(TestModel model) 
{ 
    var newId = _myService.CreateItem(model); 
    return Json(newId); 
} 

数値を取得しませんが、戻り値はデータとして表示されます:b、約束を含んでいます。成功メソッドのデータに返される数値を取得する方法はありますか?私の角度のコードは以下の通りです:私のサービスは、サービスは、私が見るようにコードが私のブレークポイントがヒットし、アクションを呼び出すことができている

function TestRepository($resource) { 
return { 
    save: function (item) { 
     return $resource('/mysite/setup/Save').save(item); 
    } 
} 

vm.save = function() { 
TestRepository.save(vm.MyData).$promise.then(
    function (data) { 
     // Here data is returned as data : b, not the number 
    }, 
    function() { 
     alert('An error occurred while creating this record.'); 
    }); 
} 

ある

、私も42に設定NEWIDを見ることができ、しかし、私はそれが角度のある側に戻って来ることは決してありません。一般的にRESTfulなサービスに接続するために使用 $resourceとして

+0

は、あなたが 'にconsole.log(データ)の結果を投稿することができますし、b {$約束:D、$解決:真}出力します' – Hackerman

+0

@Hackerman をオブジェクトが返された場合、データにはオブジェクトが含まれていますが、JSONとして返されることはありません。 – Paritosh

答えて

3

$resource doesn't support primitive response

、十分に形成されたオブジェクトにデータを送るやる、それがすべてのAPIが行う方法です。プリミティブ型のAPIからデータを送信すると、人々は悪いパターンを使うことができなくなります。理想的にはJSONオブジェクトのみを返すべきです。

[HttpPost] 
public JsonResult Save(TestModel model) 
{ 
    var newId = _myService.CreateItem(model); 
    return Json(new {Id = newId}); 
} 

コード

vm.save = function() { 
    TestRepository.save(vm.MyData).$promise.then(
     function (data) { 
      console.log(data.Id) 
     }, 
     function() { 
      alert('An error occurred while creating this record.'); 
     } 
    ); 
}