我正在使用一个全新的.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.我做错了什么?
答案 0 :(得分:3)
[HttpGet("GetSpells")]
public IEnumerable<Spell> GetSpells()
{
return _context.Spells;
}