webapi post-Methode mit Parameter funktioniert nicht

Wenn ich Anrufe, meinen webAPI-controller, enthält eine post-Methode OHNE Parameter geht es um die Methode. Wenn ich allerdings Parameter übergeben (und wenn ich aktualisieren die api-controller mit Parameter) in diesem finden Sie das snippet unter dem 1. snippet bekomme ich den 405 Fehler, dass es nicht unterstützt POST.

var captchURL = "/api/Captcha";  
$.ajax({
       url: captchURL,
       dataType: 'json',
       contentType: 'application/json',
       type: 'POST'
})



var jsondata = {solution: "7", answer: "7"};
    var captchURL = "/api/Captcha";  
    $.ajax({
           url: captchURL,
           dataType: 'json',
           contentType: 'application/json',
           type: 'POST',
           data: JSON.stringify(jsondata)
    })

UPDATE - Controller-Code:

public class CaptchaController : ApiController
{
    private readonly ICaptchaService _service;
    public CaptchaController(ICaptchaService service)
    {
        _service = service;
    }

    public Captcha Get()
    {
        return _service.Get();
    }

    [HttpPost]
    public bool Post(string solution, string answer)
    {
        return _service.Post();

    }
}

UPDATE - WebApiConfig:

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

Ist es, weil ich nicht die Lösung und Antwort params (in meinem WebApiConfig), dass es nicht erkennt?

Was mache ich falsch?

Post-code vom controller
Ich aktualisierte mit der controller-code - ich habe auch gerade Hinzugefügt, die Parameter der Post-Methode
warum hast du stringify die Daten, die ich denke, Sie sollten nicht data: jsondata ist genug
versucht es beide Wege, und bekam den gleichen Fehler.
Haben Sie die Konsole, um zu sehen, ob es irgendwelche Fehler protokolliert?

InformationsquelleAutor webdad3 | 2015-12-23

Schreibe einen Kommentar