2016-11-07 3 views
0

私は1つのクラス "student"を作成しました。リストに3つの要素が追加されました。私は1つの名前を取得したい。コンパイル時にエラーが発生します。私はwebapiから名前を取得したい。そのスローエラーが表示されます。暗黙的にタイプモデルをihttpactionresultに変換できません

プットを出したい

routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 

をルーティング

using testWEBAPI.Models; 

namespace testWEBAPI.Controllers 
{ 
    public class MyapiController : ApiController 
    { 
     public List<student> s = new List<student>() 
     { 
     new student{name="krishna",city="hyderbad"}, 
     new student{name="priya",city="mumbai"}, 
     new student{name="sandeep",city="jamshedpur"} 
     }; 

     public IHttpActionResult getnames() 
     { 
      return Ok(s.ElementAt(0).name); 
     } 
    } 




} 

- クリシュナ、ハイデラバード

+1

's.ElementAt(0)' 'student'を返します使用しますオブジェクトではなく、 'IHttpActionResult' – Pikoh

+0

私はどうすればいいのですか、Web APIの文字列を取得する必要がありますか? – sanjay

+0

WebApi 2を使用している場合は、返すタイプを示すために 'ResponseType'属性を使います。 WebApi 2を使用していない場合は、私が強くお勧めします。ルーティングははじめての方がはるかに簡単で簡単です。 –

答えて

1

あなたが実行する必要があります。

return Ok(s.ElementAt(0)); 

これが起こっている方法はにあなたを期待しているので、 IHttpActionResultを返します。

また、Studentオブジェクトが返されると予想するようにメソッドを変更することもできます。

+0

投げエラー - 名前は存在しません。 – sanjay

+0

私はrouting.iの変更をしなければならない私の質問を更新しました。ルーティングはther – sanjay

0

あなたはこれを行うことができます。これはあなたのstudentオブジェクトのJSONを取得します

public student getnames() 
{ 
    return s[0]; 
} 

を。

文字列が必要な場合は、studentオブジェクトを必要に応じて文字列に変換し、メソッド戻り値の型としてstringを使用してください。これはあなたを助けるかもしれない

+0

HTTP 404です。探しているリソース(またはその依存関係の1つ)が削除されているか、名前が変更されているか、一時的に利用できない可能性があります。次のURLを確認し、正しく入力されていることを確認してください。 http:// localhost:18024/myapi/getnames – sanjay

+0

あなたの学生は公開されていないかもしれませんが、なぜこの方法が見つからないのかわかりません。あるいは、WebApiルーティングをまったく設定していない可能性は非常に高いですか?リターン・ハロー・ワールドを使って簡単な文字列を確認してください。 –

+0

学生クラスは公開のみです。私はwebapiルーティングを全く設定していません – sanjay

0

、私はあなたの名前のリストを返している場合場合

namespace testWEBAPI.Controllers 
{ 
    public class MyapiController : ApiController 
    { 
     public List<student> s = new List<student>() 
     { 
     new student{name="krishna",city="hyderbad"}, 
     new student{name="priya",city="mumbai"}, 
     new student{name="sandeep",city="jamshedpur"} 
     }; 

     public HttpResponseMessage getnames() 
     { 
      string name = list.Select(x=>x.name).ElementAt(0); 
      HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, name); 
      return response; 
     } 
    } 
} 

を考えて、これは

public HttpResponseMessage getnames() 
{ 
     var name = list.Select(x=>x.name); 
     HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, name); 
     return response; 
    }   
関連する問題