Web Api Controllerを足場で生成しました.WebApiConfigとWeb Apiを追加しましたが、不正なデータが返されました。ASP.NET Web APIが不正なデータを返す
例: 私はいくつかのエンティティを持っています - ID名、姓などの属性を持つプレイヤー、属性名とIDを持つPositionId、Position。私は通常のPositionController経由で1つの位置にアクセスしたい場合、非常にうまく動作しますが、Web APIを使って1つの位置にアクセスしようとすると、この1つの位置に接続されているすべてのオブジェクトが返されます。
など。私はそれが
{"PositionId":1,"name":"Defensive midfield"}
を返すべきURL api/PositionsAPI/1
で1位を取得したいが、それはあなたがそれがこの位置に接続されたすべての選手を返すことがわかります
{"Players":[{"Team":{"Players":[{"PlayerId":4,"Name":"Piotrek","Surname":"Kowalski","Nation":"Poland","PositionId":1,"TeamId":1}],"TeamId":1,"Name":"FC. Barcelona","City":"Barcelona","Founded":"1899-11-29T00:00:00"},"PlayerId":2,"Name":"Jan","Surname":"Kowalski","Nation":"Poland","PositionId":1,"TeamId":1},{"Team":{"Players":[{"PlayerId":2,"Name":"Jan","Surname":"Kowalski","Nation":"Poland","PositionId":1,"TeamId":1}],"TeamId":1,"Name":"FC. Barcelona","City":"Barcelona","Founded":"1899-11-29T00:00:00"},"PlayerId":4,"Name":"Piotrek","Surname":"Kowalski","Nation":"Poland","PositionId":1,"TeamId":1}],"PositionId":1,"name":"Defensive midfield"}
返します。私はなぜそれが起こっているのか分かりません。
これは、あなたが必要とするだけのプロパティを持つ匿名オブジェクトを返すことができapi/PositionsAPI/1
[ResponseType(typeof(Position))]
public IHttpActionResult GetPosition(int id)
{
Position position = db.Positions.Find(id);
if (position == null)
{
return NotFound();
}
return Ok(position);
}
これは機能します。ありがとうございました! – azxcqqq