1

我想在相同的api控制器中使用asp.net web api不同的方法。我搜查了但我找不到。如何在同一個控制器中使用asp.net web api不同的方法?

例如:

public class HomeController : ApiController 
{ 
    AdFindDBEntities db = new AdFindDBEntities(); 
    public HomeController() 
    { 
     db.Configuration.ProxyCreationEnabled = false; 
    } 

    [HttpGet] 
    public List<Ad> AllAds() 
    { 
     return db.Ad.ToList(); 

    } 

    [HttpGet] 
    public IEnumerable<Ad> GetLastAds() 
    { 
     return db.Ad.OrderByDescending(x => x.CreatedDate).Take(20).ToList(); 
    } 
} 

當我運行該項目AllAds方法運行。我不知道如何使用GetLastAds方法。請幫幫我!

回答

0

改變缺省路由有{}行動中的路線。

routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{action}/{id}", 
     defaults: new { id = RouteParameter.Optional } 

通過這種方式,您可以通過不同的URL調用多個操作。

1

使用[Route]屬性分離打電話給你的行動

[HttpGet] 
[Route("api/home/ads}")] 
public List<Ad> AllAds() 
{ 
... 
} 


[HttpGet] 
[Route("api/home/ads/last}")] 
public List<Ad> GetLastAds() 
{ 
... 
} 
相關問題