2016-08-30 59 views
0

我刚刚接触WebAPI,只是探索其默认样本“价值”控制器,这是与项目开箱即用。找到与请求相匹配的多个操作?

我看到的时候,已经有两个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 } 
     ); 

我米使用GET methoed经过一个复杂的对象身上,我知道这是不是宁静的方式,但请帮助我理解它。

非常感谢。

+2

你为什么要将一个复杂的对象传递给GET方法?你想做什么? – Nikki9696

+0

只是为什么我不能发送一个复杂的对象获取 – user576510

+1

你可以,但你需要映射那个对象是什么,比如Get(ObjectType thing) – Nikki9696

回答

1

您可以使用ActionName注释解决此问题。例如使用:

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

因此,您可以拨打IEnumerableGet以调用此方法。

相关问题