0
我試圖創建在asp.net核心的多個級別路線,如:多層次Asp.NET路線
- API /城市
- API /城市/(編號)
- API /城市/日期/ {日期和時間}
的問題是,當我嘗試使用任何比api/cities/{id}
長我只是得到一個404
我的控制器:
[Route("api/[controller]")]
public class CitiesController : Controller
{
private ICityRepository _repository;
public CitiesController(ICityRepository repository)
{
_repository = repository;
}
// GET: api/cities
[HttpGet]
public IEnumerable<City> Get()
{
IEnumerable<City> results = _repository.GetCities();
return results;
}
//api/cities/date/{date}
[HttpGet]
[Route("date/{date}")]
public IEnumerable<City> Get2(string date)
{
return _repository.GetCitiesByDate(date);
}
// GET api/cities/5
[HttpGet("{id: int}")]
public string Get(int id)
{
return "value";
}
}
什麼我需要做的就是較長的路線到該控制器下工作嗎?
編輯:
我在這裏看到的文檔:https://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2
它說,你可以有這樣的路線:
- /命令/ 1
- /命令/未決
- /命令/ 2013/6月16日
而且有三個途徑分別。但它似乎並沒有對如何做到這一點特別提供的例子。
在課程嘗試RoutePrefix屬性,而不是[RoutePrefix( 「API /城市」)] –