CodingTT
CodingTT

Reputation: 1145

Web API Post with multi parameter never work

How can we support ajax post?

This the server code:

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

This is what I post to the server

Request URL:http://localhost/mydomain/api/Dashboard/UpdatePatientById

Request Method:POST

name:sex

value:1

pk:1093

I'm using x-editable plugin on the front end, it does the ajax post automatically. I don't think there is anything wrong with the post url.

This the error it gives me:

"No HTTP resource was found that matches the request URI 'http://example.com/mydomain/api/Dashboard/UpdatePatientById'."

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

Upvotes: 1

Views: 175

Answers (1)

Jeroen Vannevel
Jeroen Vannevel

Reputation: 44439

Web API can only receive one parameter from the body so you'll have to specify it as a type that aggregates those fields.

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

and pass that:

public IHttpActionResult UpdatePatientById([FromBody] PatientParameters parameters) { }

Upvotes: 3

Related Questions