c# - 使用 Web API 的 ASP.Net Core 路由

标签 c# asp.net

我有一个 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/

相关文章:

c# - 您网站上的多个 signalR 连接/集线器

javascript - 如何从用户控件更新控件的 ID

c# - SQL查询在转换日期后更改列名

ASP.NET ApplicationInstance.CompleteRequest 不起作用?

c# - ASP.net 有很多具有相同值的文字?

c# - 什么是 C# 5,它来自哪里?

javascript - asp.net gridview 文本框值

c# - Kendo UI 远程数据源修改

c# - 获取响应头

c# - 使用部分类