Ich versuche, eine Web-API zu erstellen, die von vielen Websites/Apps verwendet wird.C# Web Api (Nicht MVC) Wörterbuch Parameter
Die Api nimmt Wörterbuch als Parameter als dynamisch.
C# Methode:
[HttpPost]
public Dictionary<string, string> ApiTest(Dictionary<string, string> parameters)
{
Dictionary<string, string> dic_data = new Dictionary<string, string>();
foreach (KeyValuePair<string, string> tmp in parameters)
{
dic_data[tmp.Key] = tmp.Value;
}
return dic_data;
}
Ajax Aufruf zur Methode:
Bitte beachten i content gelassen: "application/json", wie es beschwert sich darüber mit CORS ua als erlaubt
var data = {"parameters":{"product_id":"1","product_model":"HFJ5G1.5","product_type":"plat","product_return":"graviteits"}};
//var data = {AlbumName: "Dirty Deeds",Songs:[ { SongName: "Problem Child"},{ SongName: "Squealer"}]};
var parameters = {};
parameters['1'] = 10;
parameters['2'] = 11;
$.ajax({
type :'POST',
url : 'http://localhost:8082/api/WebController/ApiTest/',
dataType : 'json',
data: parameters ,
success : function(data) {
console.log(data);
Ich habe versucht Binding den Parameter auch:
public class myParameters
{
public Dictionary<string,string> parameters { get; set; }
}
public Dictionary<string, string> ApiTest(myParameters parameters)
Immer noch kein Glück.
In der Browser-Konsole bekomme ich immer wieder "{}" von der API zurück.
Ich habe viele Beispiele angeschaut, aber keine scheint zu helfen. Ich bin immer noch sehr neu in C# so dass einige der Kommentare und Antworten waren über mir nur (wie die Modelbinder Sachen)
Passing List of KeyValuePair or IDictionary to Web Api Controller from Javascript
Method with Dictionary Parameter in Asp.Net Web API
WebApi bind body to Json dictionary
Deserialize JSON into dictionary in Web Api controller
UPDATE:
Nach ein paar weiteren Stunden der Suche habe ich beschlossen, einen "lokalen" Aufruf an die API von derselben Site aus vorzunehmen, die die API hostet. Ich konnte dann contentType einfügen: 'application/json; charset = utf-8' , das :-(
mit dem Senden Parsen JSON Post Objekt in Dictionary Parameter keine Probleme hatteSo, jetzt von content meiner Suche CORS + C# Api + Wörterbuch + von