проблема в httpdelete запросе asp.net core 2 - PullRequest
0 голосов
/ 21 марта 2019

Здравствуйте, я работаю над asp.net core 2.2 web api, мой запрос get работает нормально, но у меня проблема с запросом HTTPDELETE, мой код запроса на удаление выглядит следующим образом

 [Route("api/[controller]")]
[ApiController]
public class PatientController : ControllerBase
{
    IPatientManager _patientManager;
    IEnumerable<Patient> patientList;

    public PatientController(IPatientManager patientManager)
    {
        _patientManager = patientManager;
    }

    [HttpGet]
    public IEnumerable<Patient> Get()
    {
        return (patientList = _patientManager.GetAllPatients());
    }


    // DELETE api/values/5
    [HttpDelete("api/Patient/{id}")]
    public bool Delete(long id)
    {
        if (_patientManager.DeletePatient(id))
            return true;
        else
            return false;

    }
}

}

когда я помещаю запрос в URL как localhost: 3, n922 / api / Patient / 444373, он дает мне HTTP ERROR 404, мой файл startup.cs использует приведенный ниже код для MapRoute

 app.UseMvc(opt =>
            {
                opt.MapRoute("Default",
                    "{controller=Patient}/{action=Get}/{id?}");
            });

для запуска моего PatientController вместо ValuesController. Помогите, пожалуйста, в чем проблема, если я делаю что-то не так? ТИА

1 Ответ

0 голосов
/ 21 марта 2019

У вас есть префикс маршрута, определенный на вашем контроллере как api/[controller], что означает /api/Patient.Затем ваш маршрут в вашем действии определяется как api/Patient/{id}, что делает весь маршрут к этому действию: /api/Patient/api/Patient/{id}.Это явно не правильно и является источником ваших 404. Измените маршрут на {id}.

[HttpDelete("{id}")]
public bool Delete(long id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...