C#Web Api(非MVC)字典参数
我正在尝试创建一个Web Api,它将被许多网站/应用程序使用 Api将字典作为参数,因为它是动态的 C#方法: 我也尝试过绑定参数:C#Web Api(非MVC)字典参数,c#,json,dictionary,web,asp.net-web-api,C#,Json,Dictionary,Web,Asp.net Web Api,我正在尝试创建一个Web Api,它将被许多网站/应用程序使用 Api将字典作为参数,因为它是动态的 C#方法: 我也尝试过绑定参数: public class myParameters { public Dictionary<string,string> parameters { get; set; } } public Dictionary<string, string> ApiTest(myParameters parameters ) 公共类myPara
public class myParameters
{
public Dictionary<string,string> parameters { get; set; }
}
public Dictionary<string, string> ApiTest(myParameters parameters )
公共类myParameters
{
公共字典参数{get;set;}
}
公共字典ApiTest(myParameters)
还是不走运
在浏览器控制台上,我一直从API接收回“{}”
我看了很多例子,但似乎没有一个有用。我对C#还是很陌生,所以一些评论和答案就在我之上(比如ModelBinder的东西)
更新:
再搜索几个小时后,我决定从承载API的同一站点对API进行“本地”调用。
然后我就可以放置contentType:“application/json;charset=utf-8',在将解析JSON post对象发送到字典参数时没有问题:-(
现在我继续搜索contentType+C#Api+Dictionary+CORS如果它在同一个域中工作正常,那么在这种情况下需要启用CORS,ajax调用将包括
crossDomain:true,
数据类型:“json”,
contentType:“应用程序/json”,
要启用CORS,请查看服务器上启用CORS的示例。CORS通过简单的绑定参数(如字符串)跨域运行良好。Dictionary where失败 但是,我必须在IIS上再进一步,才能在AJAX调用中指定内容类型 我在没有指定IIS内容类型头的情况下对其进行了测试,即使我添加了crossDomain:true,我仍然会收到Jquery错误,抱怨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 )