使用jQuery发布时,收到拼写错误的JSON模型

时间:2017-09-18 08:37:06

标签: jquery asp.net json asp.net-core asp.net-core-mvc

我正在使用ASP.NET Core,现在尝试使用post与jQuery。 我遇到的情况是这样的:

我有一个模特

gradle_home: "/data1/deployment/gradle_user_home"

和像

这样的API
public 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"}

有没有办法改变我能期待的拼写?

1 个答案:

答案 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 ...)。