Параметр в http.put всегда равен нулю

#c# #asp.net #angular

#c# #asp.net #угловой

Вопрос:

Я пытаюсь обновить объект в моем бэкэнде. Я создал этот внутренний метод

   // PUT: api/Appointment/5
        /// <summary>
        /// Modifies an appointment
        /// </summary>
        /// <param name="appointmentId">id of the appointment to be modified</param>
        /// <param name="start">Start of appointment</param>
        /// <param name="end">End of appointment</param>
        [HttpPut("{appointmentId}")]
        public IActionResult PutAppointment(int appointmentId, string start)
        {
            if(start == null) {
                Console.WriteLine("null");
            }
 

Но мой начальный параметр, который я возвращаю из своего приложения angular, всегда равен нулю.
Это мой метод angular:

 updateAppointment(
    appointmentId:number, start: string
  ): Observable<any>{
    console.log(start);

    const params = new HttpParams()
  .set('start', start);

    return this.http.put(
      `${environment.apiUrl}/appointment/${appointmentId}`,
      {params},
      { responseType: "text"})
  }
 

Я пробовал несколько вещей, но все они возвращают start с нулевым значением. Я регистрирую его на консоли в своем приложении angular, и там оно выдает правильное значение строки, но в моем бэкэнде (asp net) оно всегда равно null.

Кто-нибудь знает, как я могу это исправить?

Комментарии:

1. Является HttpParams ли тело? [FromBody] string start В этом случае вам придется использовать.

2. Вторым параметром запроса put должно быть тело запроса. Параметры запроса должны быть частью третьего параметра.