Web API Post с несколькими параметрами никогда не работает

1

Как мы можем поддерживать пост ajax?

Это код сервера:

[RoutePrefix("api/Dashboard")]
public class PatientDashboardController : ApiController
{
    [Route("UpdatePatientById")]
    [HttpPost]
    public IHttpActionResult UpdatePatientById(int? pk, string name, object value )
    {
        return Ok(name);
    }
}

Это то, что я отправляю на сервер

URL-адрес запроса: http://localhost/mydomain/api/Dashboard/UpdatePatientById

Метод запроса: POST

Название: секс

Значение: 1

рк: 1093

Я использую x-editable плагин на лицевой стороне, он автоматически выполняет запись ajax. Я не думаю, что что-то не так с адресом.

Это ошибка, которая мне дает:

"HTTP-ресурс не найден, что соответствует запросу URI ' http://example.com/mydomain/api/Dashboard/UpdatePatientById '."

MessageDetail: "No action was found on the controller 'Dashboard' that matches the request."

Теги:
asp.net-web-api

1 ответ

3
Лучший ответ

Web API может получать только один параметр из тела, поэтому вам нужно будет указать его как тип, который объединяет эти поля.

class PatientParameters 
{
    public int? Pk { get; set; }
    public string Name { get; set; }
    public object Value { get; set; }
}

и передать следующее:

public IHttpActionResult UpdatePatientById([FromBody] PatientParameters parameters) { }
  • 0
    Спасибо, это работает!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню