ASP.Net Core routes with Web API
本文关键字:Web API with routes Net Core ASP | 更新日期: 2023-09-27 18:03:14
我有一个Web API控制器,有一个叫做GetHeroes()
的方法,它不会被前端调用。我可以得到一个简单的Get()
方法工作,但似乎没有一种方法来命名方法,并有这些方法调用。
CharactersController.cs
[Route("api/{controller}/{action}")]
public class CharactersController : Controller
{
private readonly ICharacterRepository _characterRepository;
public CharactersController(ICharacterRepository characterRepository)
{
_characterRepository = characterRepository;
}
[HttpGet]
public IEnumerable<Character> GetHeroes()
{
return _characterRepository.ListAll().OrderBy(x => x.Name);
}
}
data.service.ts
getItems() {
this.http.get('api/characters/getheroes').map((res: Response) => res.json()).subscribe(items => {
this._collectionObserver.next(items);
});
}
可以在HttpGet属性中指定路由和参数。你试过这样的东西吗?
[Route("api/[controller]")]
public class CharactersController : Controller
{
...
[HttpGet("GetHeroes")] // Here comes method name
public IEnumerable<Character> GetHeroes()
{
return _characterRepository.ListAll().OrderBy(x => x.Name);
}
}
这是一篇关于路由的好文章:自定义路由和动作方法名。. NET 5和ASP。. NET MVC 6
这适用于ASP。NET核心:
[HttpGet("{id}", Name = "GetHero")]
public IActionResult GetById(string id)
{
var hero = Heroes.Find(id);
if (hero == null)
{
return NotFound();
}
return new ObjectResult(hero);
}