ASP. NET 404 с конечной точкой HTTPGET - PullRequest
0 голосов
/ 30 марта 2020

Я сделал свою первую конечную точку, используя C # / ASP. Net, и сейчас пытаюсь использовать запрос get для фильтрации "yearId". Код ниже:

    [HttpGet("{yearId}")]
    public async Task<ActionResult<Student>> GetStudent(long yearId)
    {
        var student = await _context.Student.FindAsync(yearId);

        if (student == null)
        {
            return NotFound();
        }

        return student;
    }

Я могу подтвердить, что это правильно вводится с сообщением, так что идентификатор можно увидеть. Если я попробую просто «Id», он будет фильтроваться по уникальному идентификатору. Моя конечная точка Startup.cs по умолчанию, так что я подозреваю, что это проблема, но не знаю, где go:

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers();
        });

Любая помощь приветствуется. У меня есть следующий маршрут: [маршрут ("api / Students")]

Спасибо

РЕДАКТИРОВАТЬ: Когда я пытаюсь / api / Students / getyear / 4 я теперь получаю пустой ответ в почтальоне и 404 в chrome. Startup.cs - это:

                endpoints.MapControllerRoute (
                    name: "MapByAction",
                    pattern: "api/{controller}/{action}/{yearId?}",
                    defaults: new { controller = "students", action = `"getyear" });`

, а мой файл:

        [HttpGet("{yearId}")]
        private async Task<ActionResult<Student>> GetYear(long yearId)
        {
            var student = await _context.Student.FindAsync(yearId);

            if (student == null)
            {
                return NotFound();
            }

            return student;
        }
...