クライアント側モデル(タイプスクリプトファイル)を使用して、Web APIをコントローラアクションにデータを投稿することができません:FromBody属性
export interface IRecord {
id: string
amount: string,
amountConst: string,
amountLC: string,
}
サーバーサイドモデル/クラス:私はnewtonsoft JSONを使用しています。
もし私がtypescriptファイルのプロパティの名前にJsonプロパティの値を変更すると、 その列の値はUIに表示されません。
public class Records
{
[Key]
public string ID { get; set; }
[Column("Amount")]
[JsonProperty("Amount")]
public string Amount { get; set; }
[Column("Amount Const $")]
[JsonProperty("Amount Const $")]
public string AmountConst { get; set; }
[Column("Amount LC")]
[JsonProperty("Amount LC")]
public string AmountLC { get; set; }
}
ウェブアピContoller:
[HttpPost]
[Route("Export")]
[ActionName("Export")]
public FileResult Export([FromBody]List<Records> Record)
{
try
{
}
}
サーバー側私はクライアント側 からではなく、ヌルのプロパティ値を持つレコードの正確な数を取得しています。
を処理するために
Records
タイプ(下さいcheck this)のカスタムモデルバインダーを書くあなたは 'JsonProperty' everywheを削除する必要がありますスペースを入れずにバージョンを使用するために、あなたのバインディングを角度で修正してください。 'JsonProperty'にスペースを追加すると、ASP.NET Coreは' [{"Amount":5、 "Amount Const $": "abc"、 "Amount LC": "xyz"}] 'のようなjsonボディを期待します。 – Tseng@Tsengプロパティリゾルバを使用してプロパティ名をTypescriptファイルの名前に変換していますが、パスカルケースからキャメルケースへ –