我正在嘗試創建一個將被許多網站/應用程序使用的Web Api。C#Web Api(非MVC)字典參數
Api將字典作爲參數,因爲它將是動態的。
C#方法:
[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調用方法:
請注意,我離開了的contentType: 「應用/ JSON」,因爲它抱怨它是包括CORS允許
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);
我試過綁定參數以及:
public class myParameters
{
public Dictionary<string,string> parameters { get; set; }
}
public Dictionary<string, string> ApiTest(myParameters parameters)
仍然沒有運氣。
在瀏覽器控制檯上,我只是不停地從API接收「{}」。
我看了很多例子,但似乎沒有幫助。我還是很新的C#這樣的一些意見和答案的只有我上面(如ModelBinder的東西)
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:
經過幾個小時的搜索之後,我決定從託管API的同一站點對API進行「本地」調用。 我當時能夠放置contentType:'application/json;字符集= UTF-8' ,其曾與發送解析JSON對象後進入字典參數:-(
所以現在的contentType我繼續搜索+ C#API +詞典+ CORS