Come posso/è possibile passare in un oggetto json a un controller webapi (POST) e non avere una classe per mapparlo, ma piuttosto gestirlo come contenuto arbitrario ?come inviare un oggetto json arbitrario a webapi
Quindi, se mi passa dal mio cliente in questo modo:
createRecord: function (model, data, callback, callbackParams) {
var request = jQuery.ajax({
type: "POST", // default = GET,
url: '/api/' + model + '/',
data: data,
contentType: 'application/json',
success: function (msg) {
$('#results').text(msg);
if (callback) // only fire a callback if it has been specified
callback(msg, callbackParams);
},
error: function (jqXHR, textStatus) {
alert('Request failed: ' + textStatus);
}
});
}
e dei dati è qualcosa di simile:
{ "_id" : ObjectId("5069f825cd4c1d590cddf206"), "firstName" : "John", "lastName" : "Smith", "city" : "Vancouver", "country" : "Canada" }
mio regolatore sarà in grado di analizzarlo? E la prossima volta i dati potrebbero non corrispondere a quello della firma (per esempio:
{ "_id" : ObjectId("5069f825cd4c1d56677xz6"), "company" : "Acme" }
Nel mio controller, ho provato:
public HttpResponseMessage Post([FromBody]JObject value)
e:
public HttpResponseMessage Post([FromBody]string value)
e (perché questo è in realtà per lavorare con un mongo db):
public HttpResponseMessage Post([FromBody]BsonDocument value)
ma sembra che l'object mapper voglia mappare qualcosa di diverso dalla stringa ...
grazie per questo - sia questa sia la risposta di kxb sono utili - risposta premiata al primo risponditore – Jonathan