我正在使用ASP.NET Core,现在尝试使用post与jQuery。 我遇到的情况是这样的:
我有一个模特
gradle_home: "/data1/deployment/gradle_user_home"
和像
这样的APIpublic class Model {
int INT_VALUE { get; set; }
string STR_VALUE { get; set; }
int SOME { get; set; }
}
现在我使用jQuery
发帖请求[HttpPost]
public Model GetValues(string val) {
Model m = new Model { INT_VALUE = 1, STR_VALUE = "hi", SOME = "there" };
return m;
}
重点是,如果我使用INT_VALUE获取模型=== 1 log ' Hit!'
但它不起作用。 (没有进入$.post('api/GetValues', { val: "abc" })
.done(function (data) {
console.log(data)
if (data.INT_VALUE === 1) {
console.log("Hit!");
}
});
)
所以,我检查了接收的json值,然后我发现了拼写错误的奇怪值,如
console.log("Hit!")
我的期望
{"inT_VALUE":1,"stR_VALUE":"hi","some":"there"}
或
{"INT_VALUE":1,"STR_VALUE":"hi","SOME":"there"}
有没有办法改变我能期待的拼写?
答案 0 :(得分:1)
我认为您可以更改为使用PascalCase来获取模型的属性(例如:IntValue,StrValue ...)。然后你可以通过以下设置强制Json Serializer使用PascalCase。
在Startup.cs文件中,找到您的ConfigureServices方法并像这样更新
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver());
}
然后在客户端,您可以使用模型中定义的相同名称访问属性(IntValue,StrValue ...)。