2016-08-30 23 views
0

WebAPIが初めてで、デフォルトのサンプル "値"コントローラを探っています。私はそれはすでに2つのGetメソッド持った参照リクエストに一致するアクションが複数見つかりましたか?

 // GET api/values 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

    // GET api/values/5 
    public string Get(int id) 
    { 
     return "value"; 
    } 

を私が試したし、複合型とint型のIDを変更し、受信した「複数のアクションが要求に一致することが判明した。

なぜそれはうまくいっているということですか?

私のルートはdefuatlです:

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

私はmethoed取得を使用して、体内で複雑なオブジェクトを渡すM、私はそれはRESTfulな方法ではありません知っているが、私はそれを理解して助けてください。

非常に高く評価されています。

+2

複雑なオブジェクトをGETメソッドに渡すのはなぜですか?あなたは何をしようとしているのですか? – Nikki9696

+0

ちょうど私が複雑なobjを送ることができない理由を探る – user576510

+1

することができますが、Get(ObjectTypeのもの) – Nikki9696

答えて

1

この問題ではActionName注釈を使用できます。使用例について:

[ActionName("IEnumerableGet")] 
public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

だから、このメソッドが呼び出されます持っているIEnumerableGetを呼び出すことができます。

関連する問題