.Net Core Web API无法添加路由到控制器操作

时间:2017-05-03 18:20:26

标签: asp.net asp.net-web-api asp.net-core-webapi

我正在使用一个全新的.NET Core Web API应用程序。我已经生成了一个新的控制器,它将Route属性添加到Controller,因此HTTP方法是参数。我想更改它,以便ActionName是路由的一部分,但是在动作上放置一个Route属性似乎不起作用。所以我的控制器目前设置如下:

[Produces("application/json")]
[Route("api/Spells")]
public class SpellsController : Controller
{
    private readonly Spellbook3APIContext _context;

    public SpellsController(Spellbook3APIContext context)
    {
        _context = context;
    }

    // GET: api/Spells
    [HttpGet]
    public IEnumerable<Spell> GetSpells()
    {
        return _context.Spells;
    }
}

我想这样做:

[Produces("application/json")]
public class SpellsController : Controller
{
    private readonly Spellbook3APIContext _context;

    public SpellsController(Spellbook3APIContext context)
    {
        _context = context;
    }

    // GET: api/Spells
    [HttpGet]
    [Route("api/Spells/GetSpells")]
    public IEnumerable<Spell> GetSpells()
    {
        return _context.Spells;
    }
}

但是当我说出来时,它不起作用。我刚拿到404.我做错了什么?

1 个答案:

答案 0 :(得分:3)

 [HttpGet("GetSpells")]
 public IEnumerable<Spell> GetSpells()
 {
     return _context.Spells;
 }