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 /城市”)] –