ASP.NET Core MVCのモデルバインディングに問題があります。私はJavascriptから呼び出されるとヒットしますが、postDataは常にnullです。ASP.NETコアの複合型のリストをモデルにバインドする
[HttpPost("/somepost")]
public string SomePost([FromBody] PostData postData)
{
return "Got It!";
}
public class PostData
{
public int ID { get; set; }
public string[] ListOrArray { get; set; } // Doesn't matter if this ends up a List or an Array
}
このエンドポイントは、$ .click関数からヒットされている:
$('img.some-image').click(function() {
array = ['sample data', 'some more'];
data = {
ID: 1,
ListOrArray: array
};
$.ajax({
type: 'POST',
url: '/somepost',
dataType: 'json',
contentType: 'application/json; charset=utf-8',
data: data,
success: function (result) {
console.log('Received: ');
console.log(result);
}
});
});
私は問題は結合モデルであることを推測しているが、私はわかりません。小文字のJavascriptオブジェクトのプロパティ名の例を見たことがありますが、それは私のために何も変わっていません。
また、POSTから[ValidateAntiForgeryToken]を削除する必要がありますが、私はそれを再度追加することをお勧めします.GET要求にトークンを追加してPOST用に提出する必要があると思いますしかし、私はそれを行う方法を考え出していない。私はそれが私の問題とは関係がないとは思わない。
回答とサンプルを検索しましたが、どれも私のために働いていません。 ASP.NET Coreはかなり新しく、そこにはあまりありません。私はバージョン1.1.0です。
を使用することができ、あなたの変換するには:$( '入力[名前= "__ RequestVerificationToken"]')のval();'インチあなたのデータオブジェクト –