1

この JSON 文字列を取得しました。何が問題なのですか? 複数のオンライン JSON テスターで実行できますが、すべて OK です。しかし、これがエンティティ フレームワークを介して C# Web API に投稿されると、投稿本文が null になります。何か案は?これは POST 関数です。

public void Post([FromBody]List<AIM.RunningProcess> list_runningprocesses)
{
    if (list_runningprocesses == null) return;

これは JSON 文字列です。

[
    {
      "PSComputerName":  "eetpcx31v.admin.eetp.local",
      "ProcessName":  "AcroRd32.exe",
      "ProcessID":  14240,
      "CommandLine":  ".C:\\Program Files (x86)\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe. .C:\\Users\\jmetzler\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.Outlook\\VG2QRLL8\\Pöyry_RevealingFlexibilityValueStudy_Proposal_v2_0.pdf.",
      "CreationDate":  "Oct 24 2013 14:21:09",
      "Username":  "jmetzler",
      "RemoteIP":  null
    }
]

CommandLine プロパティのために明らかに失敗します。「コマンドライン」のデータベース列プロパティは varchar(8000) です。これは「RunningProcess」クラスです。

public partial class RunningProcess
{
    public string PSComputerName { get; set; }
    public string ProcessName { get; set; }
    public string ProcessID { get; set; }
    public string CommandLine { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }
    public string Username { get; set; }
    public string RemoteIP { get; set; }
}

誰でも何か考えがありますか?

4

2 に答える 2

-1

問題が正しく発生している場合は、JSON 文字列を次のように変更してみてください。

{list_runningprocesses:
[
{
  "PSComputerName":  "eetpcx31v.admin.eetp.local",
  "ProcessName":  "AcroRd32.exe",
  "ProcessID":  14240,
  "CommandLine":  ".C:\\Program Files (x86)\\Adobe\\Reader 10.0\\Reader\\AcroRd32.exe. .C:\\Users\\jmetzler\\AppData\\Local\\Microsoft\\Windows\\Temporary Internet Files\\Content.Outlook\\VG2QRLL8\\Pöyry_RevealingFlexibilityValueStudy_Proposal_v2_0.pdf.",
  "CreationDate":  "Oct 24 2013 14:21:09",
  "Username":  "jmetzler",
  "RemoteIP":  null
 }
]
}
于 2013-10-24T15:39:30.063 に答える