2017-09-18 4 views
0

私はASP.NET Coreを使用していますので、jQueryでpostを使用しようとしています。私はjQueryを使用した投稿で、間違ったスペルのJSONモデルを受信しました

[HttpPost] 
public Model GetValues(string val) { 
    Model m = new Model { INT_VALUE = 1, STR_VALUE = "hi", SOME = "there" }; 
    return m; 
} 

は今、私はjQueryの

$.post('api/GetValues', { val: "abc" }) 
    .done(function (data) { 
     console.log(data) 
     if (data.INT_VALUE === 1) { 
      console.log("Hit!"); 
     } 
    }); 

使用してポストを要求するモデル

public class Model { 
    int INT_VALUE { get; set; } 
    string STR_VALUE { get; set; } 
    int SOME { get; set; } 
} 

やAPI等を有していて

:私が遭遇 状況は、このようなものでしたポイントは、私はINT_VALUE === 1のログを持つモデルを取得する場合です'ヒット!' でも動作しませんでした。

だから、私はその後、受信側のJSON値をチェックし、私は私が期待したもの

{"inT_VALUE":1,"stR_VALUE":"hi","some":"there"} 

のような間違ったスペルで奇妙な値を発見した(console.log("Hit!")に取得していないこと)

{"INT_VALUE":1,"STR_VALUE":"hi","SOME":"there"} 

または

です
{"int_value":1,"str_value":"hi","some":"there"} 

私が期待できるスペルを変更する方法はありますか?

答えて

1

モデルのプロパティ(例:IntValue、StrValue ...)にPascalCaseを使用するように変更できると思います。次に、JsonシリアライザにPascalCaseを強制的に使用させ、設定を適用させることができます。お使いのモデル(IntValue、strValueにで定義されているあなたのStartup.csファイルで

、あなたのConfigureServices方法を見つけて、この

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc() 
     .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 
} 

ようにそれを更新するには、クライアント側では、同じ名前を使用してプロパティにアクセスすることができました。 ..)。

+0

それが働きました!ありがとうございました :) – wallah

関連する問題