2016-04-19 7 views
0

Imコントローラに返されたHttpWebResponseの値を設定しようとしましたが、オブジェクトを作成できません。サーバーアプリケーション(REST)からHttpWebResponseを返す

今はステータスコードを設定したいだけですが、もう一度HttpWebResponseクラスの他の部分も必要になるかもしれません。 Getメソッドが既に他のデータを返すので、明らかに間違っている状態として文字列を返すことができます。

この

は(RESTサーバ&クライアントが実装されているかを理解するだけのテストアプリケーションとそれらがどのように通信するか)私のコントローラです:

public class TeamsController : ApiController 
{ 
    public static List<Team> teams = new List<Team>() 
    { 
     new Team { Kuerzel = "BVB09",Name="Borrusia Dortmund", Stadt="Dortmund"}, 
     new Team { Kuerzel = "RWE",Name="Rot Weiss Essen", Stadt="Essen"} 
    }; 

    public IEnumerable<Team> GetAllTeams() 
    { 
     Console.WriteLine("All teams returned"); 
     return teams; 
    } 

    public Team GetTeamById(int id) 
    { 
     if (id < teams.Count) 
     { 
      Console.WriteLine("Team with ID=" + id + " returned"); 
      return teams[id]; 
     } 
     else 
      return null; 
    } 

    public string PostNewTeam(Team team) 
    { 
     teams.Add(team); 
     Console.WriteLine("Post Team: " + team.ToString()); 
     return "Success"; 
    } 

} 

答えて

1

使用using System.Net.Http;PostNewItem()メソッドの戻り値の間にreturn Request.CreateResponse(HttpStatusCode.OK, "success");追加します。ポストの戻り値の型()メソッドは、HttpResponseMessage

+0

感謝を!それは私が探していたことです。私は2番目のパラメータ(T)がHttpメッセージの本文であることを正しく理解しましたか? – Marv

0

する必要がありますあなたはこれを試すことができます。

public IHttpActionResult PostNewTeam(Team team) 
{ 
    teams.Add(team); 
    // Console.WriteLine("Post Team: " + team.ToString()); 
    return this.StatusCode(HttpStatusCode.Created); 
} 
+0

おそらく私は少し目立たなければならないでしょう:私は.net 4.0しか使えないので、 'IHttpActionResult'へのアクセス権がありません。 – Marv

関連する問題