我有一个 Web API Controller ,它有一个名为 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);
}
}
这是一篇关于路由的好文章: Custom Routing and Action Method Names in ASP.NET 5 and ASP.NET MVC 6
关于c# - 使用 Web API 的 ASP.Net Core 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39062459/