Asp.net .Net核心Web API可以';t将路由添加到控制器操作

Asp.net .Net核心Web API可以';t将路由添加到控制器操作,asp.net,asp.net-web-api,asp.net-core-webapi,Asp.net,Asp.net Web Api,Asp.net Core Webapi,我正在开发一个全新的.NET核心Web API应用程序。我已经生成了一个新的控制器,它向控制器添加了Route属性,因此HTTP方法是参数。我想更改它,使ActionName成为路由的一部分,但在操作上添加路由属性似乎不起作用。因此,我的控制器当前设置如下: [Produces("application/json")] [Route("api/Spells")] public class SpellsController : Controller { private readonly S

我正在开发一个全新的.NET核心Web API应用程序。我已经生成了一个新的控制器,它向控制器添加了Route属性,因此HTTP方法是参数。我想更改它,使ActionName成为路由的一部分,但在操作上添加路由属性似乎不起作用。因此,我的控制器当前设置如下:

[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;
    }
}
[产生(“应用程序/json”)]
[路线(“api/拼写”)]
公共类拼写控制器:控制器
{
私有只读Spellbook3APIContext\u上下文;
公共拼写控制器(Spellbook3APIContext上下文)
{
_上下文=上下文;
}
//获取:api/咒语
[HttpGet]
公共IEnumerable GetSpells()
{
返回上下文拼写;
}
}
我想这样做:

[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;
    }
}
[产生(“应用程序/json”)]
公共类拼写控制器:控制器
{
私有只读Spellbook3APIContext\u上下文;
公共拼写控制器(Spellbook3APIContext上下文)
{
_上下文=上下文;
}
//获取:api/咒语
[HttpGet]
[路线(“api/Spells/GetSpells”)]
公共IEnumerable GetSpells()
{
返回上下文拼写;
}
}
但当我这么说的时候,它就不起作用了。我刚拿到404。我做错了什么

[HttpGet(“GetSpells”)]
 [HttpGet("GetSpells")]
 public IEnumerable<Spell> GetSpells()
 {
     return _context.Spells;
 }
公共IEnumerable GetSpells() { 返回上下文拼写; }
我还需要404更新更多的代码,这一个有用吗。。。在类级别添加了route no.:(您在[route(“/GetSpells”)]右侧缺少一个方括号,但这不是我的问题将route添加到httpget参数?并确保类具有route AttributeHa!成功了!谢谢!