【问题标题】:Testing WebAPI Controller with Multiple Put/Post parameters使用多个 Put/Post 参数测试 WebAPI 控制器
【发布时间】:2016-04-14 18:36:31
【问题描述】:

因此,根据各种建议,我更新了我的 web api 控制器方法,该方法接受来自

的多个复杂参数对象
   //public IHttpActionResult PostCreateCase([FromBody]  ARC.Donor.Business.Case.CreateCaseInput CreateCaseInput, [FromBody]  ARC.Donor.Business.Case.SaveCaseSearchInput SaveCaseSearchInput)

public IHttpActionResult PostCreateCase(JObject jsonObject)
{
}

然后相应地解析它们...

public IHttpActionResult PostCreateCase(JObject jsonObject)
{
    var CreateCaseInput = jsonObject["CreateCaseInput"].ToObject<CreateCaseInput>();
    var SaveCaseSearchInput = jsonObject["SaveCaseSearchInput"].ToObject<SaveCaseSearchInput>();
    ARC.Donor.Service.Case.CaseServices cs = new ARC.Donor.Service.Case.CaseServices();
    var searchResults = cs.createCase(CreateCaseInput, SaveCaseSearchInput);
------
}

但即使在那之后,当我使用 Json 对象作为测试我的控制器时

  "CreateCaseInput":[
    {
      "case_nm":"EFG Test",
      "case_desc":"EFG is a test",
      "report_dt" : "04/12/2015"
    }
    ],
   "SaveCaseSearchInput":[
     {
       "firstName" : "Chiranjib",
       "constType" : "IN"
     }
     ]

我仍然在

中获得 CreateCaseInput 和 SaveCaseSearchInput 对象
   public IList<ARC.Donor.Business.Case.CreateCaseOutput> createCase(ARC.Donor.Business.Case.CreateCaseInput CreateCaseInput, ARC.Donor.Business.Case.SaveCaseSearchInput SaveCaseSearchInput)
{
.......
}

为空。

我做错了什么?

【问题讨论】:

  • CreateCaseInputSaveCaseSearchInput 在您的 JSON 中是数组,但您正试图将它们反序列化为对象
  • 如何传递它们以便可以将它们解析为单独的对象?
  • 首先删除 JSON 中的方括号。

标签: json asp.net-web-api


【解决方案1】:

你的 JSON 是错误的,因为它是一个数组,而不是一个对象。

试试这个方法:

{
    "CreateCaseInput":
      {
        "case_nm":"EFG Test",
        "case_desc":"EFG is a test",
        "report_dt" : "04/12/2015"
      },
    "SaveCaseSearchInput":
      {
        "firstName" : "Chiranjib",
        "constType" : "IN"
      }
}

希望对你有帮助:)

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多