2016-05-25 5 views
1

Если я проектирую мой контроллер таким образом:Несколько действий с различными маршрутами атрибутов?

public class ItemController : ApiController 
{ 
    [HttpGet] 
    [RoutePrefix("item/dosomething")] 
    public void DoSomething(Item item) 
    { } 

    [HttpGet] 
    [RoutePrefix("item/dosomethingnicer")] 
    public void DoSomethingNicer(Item item) 
    { } 

    [HttpGet] 
    [RoutePrefix("item/dosomethingelse")] 
    public void DoSomethingElse(Item item) 
    { } 
} 

бы эту работу?

+2

Определите «работу». Кроме того, 'RoutePrefix' следует использовать для классов, а не для методов, которые вы можете использовать вместо« Route ». – Nasreddine

ответ

1

я ожидал бы структуру более похожее на это:

[RoutePrefix("item")] 
public class ItemController : ApiController 
{ 
    [HttpGet] 
    [Route("dosomething")] 
    public void DoSomething(Item item) 
    { } 

    [HttpGet] 
    [Route("dosomethingnicer")] 
    public void DoSomethingNicer(Item item) 
    { } 

    [HttpGet] 
    [Route("dosomethingelse")] 
    public void DoSomethingElse(Item item) 
    { } 
} 
0

Я использую Web Api 2 таким образом, в большом количестве контроллеров:

[HttpGet] 
[Route("~/api/{version}/research/export")] 
public IHttpActionResult Export(){ 
    do stuff... 
} 

[HttpPost] 
[Route("~/api/{version}/research/list")] 
public IHttpActionResult List() 
{ 
    do stuff... 
} 

Я использую полное описание апи путь и его работает без проблем.

 Смежные вопросы

  • Нет связанных вопросов^_^