gpt4 book ai didi

C# Web Api(非 MVC)字典参数

转载 作者:行者123 更新时间:2023-11-30 16:48:09 25 4
gpt4 key购买 nike

我正在尝试创建一个将被许多网站/应用程序使用的 Web Api。

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: "application/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);

我也试过绑定(bind)参数:

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

更新:

经过几个小时的搜索,我决定从托管 API 的同一站点对 API 进行“本地”调用。然后我就可以放置 contentType: 'application/json; charset=utf-8',将解析的 JSON post 对象发送到 Dictionary 参数没有问题:-(

所以现在我继续搜索 contentType + C# Api + Dictionary + CORS

最佳答案

如果它在同一个域中工作正常,在这种情况下您将需要启用 CORS,并且您的 ajax 调用将包括

跨域:真,
数据类型:“json”,
contentType: "application/json",

要启用 CORS,请查看示例 here

关于C# Web Api(非 MVC)字典参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38501396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com