[c#]ASP.Net 核心路线与 Web API

标签: Asp.net C#
发布时间: 2017/2/25 3:59:54
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有一个 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);
    });
}

解决方法 1:

你可以在公共属性指定路线和参数。你试过这样的事情吗?

[Route("api/[controller]")]
public class CharactersController : Controller
{
    ...

    [HttpGet("GetHeroes")] // Here comes method name
    public IEnumerable<Character> GetHeroes()
    {
        return _characterRepository.ListAll().OrderBy(x => x.Name);
    }
}

这是一篇关于路由的好文章︰自定义路由和操作方法名称在 ASP.NET 5 和 ASP.NET MVC 6

官方微信
官方QQ群
31647020