Ich habe 3 Methoden erstellt, um das Attribut-Routing zu testen.
Meine 2 GET-Methoden scheinen zu laufen, aber ich kann nicht verstehen, wie meine Post-Methode funktioniert.Routing-Problem oder Parameterproblem?
Ist meine Route falsch bei der Post-Methode oder übergebe ich falsch die falschen Daten an die Methode?
Mein Controller:
[RoutePrefix("api/myTest")]
public class JobController : ApiController
{
[Route("{id:int}")]
[HttpGet]
public string GetJob(int id)
{
return String.Format("Job-{0}", id.ToString());
}
[Route("GetJob2/{id:int}")]
[HttpGet]
public string GetJob2(int id)
{
return String.Format("New and improved Job-{0}", id.ToString());
}
[Route("NewJob/{data}")]
[HttpPost]
public HttpResponseMessage NewJob(HttpRequestMessage request)
{
// Read and process xml
}
}
In meinem JS Ich habe:
$.get('api/myTest/' + $("#jobID").val()) // Works
$.get('api/myTest/GetJob2/' + $("#jobID").val()) // Works
var data = "<root><name>Bob</name></root>";
$.post('api/myTest/NewJob/', data) // Fails 404 Error
UPDATE:
[Route("NewJob/{data}")]
[HttpPost]
public HttpResponseMessage NewJob(string request)
UPDATE 2:
[Route("NewJob/{data}")]
[HttpPost]
public HttpResponseMessage NewJob(string data)
{
}
var data = "<root><name>Bob</name></root>";
$.post('api/myTest/NewJob/', data)
.done(function (result) { alert("done"); })
.fail(function (xhr, status, err) {
alert(xhr.responseText);
});
Der Parameter von 'NewJob' sollte' string' Typ sein. – aff
Was ist der Fehler? Es gibt weitere Informationen nach dem "Fehler 404 Fehler" –
Ich sehe nur 404 - nicht gefunden – PrivateJoker