【问题标题】:.Net Core Web API can't add route to controller action.Net Core Web API 无法将路由添加到控制器操作
【发布时间】:2017-10-01 17:14:36
【问题描述】:

我正在开发一个全新的 .NET Core Web API 应用程序。我已经生成了一个新的控制器,它给控制器添加了Route属性,所以参数是HTTP Method。我想更改它,使 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。我做错了什么?

【问题讨论】:

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


    【解决方案1】:
     [HttpGet("GetSpells")]
     public IEnumerable<Spell> GetSpells()
     {
         return _context.Spells;
     }
    

    【讨论】:

    • 对我来说还是 404ing
    • 更新了更多代码,这个有用吗? ...在班级级别添加路线
    • 遗憾的是没有。 :( 你也错过了 [Route("/GetSpells")] 右边的方括号,但这不是我的问题
    • 尝试将路由添加到httpget参数?并确保该类具有路由属性
    • 啊哈!做到了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 2017-12-01
    • 2019-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多