1
MVC APIで作成したメソッドを実行しようとしています。これは、JSON形式の本体を介してオブジェクトを渡す必要があります。私が知っている限り、メソッドやオブジェクトにエラーはありませんが、私が送信しているJSONは実際にはメソッドに渡されず、オブジェクトパラメータはnullのままです。オブジェクトがJSON本体からメソッドに渡されない
これはメソッドです:
// Consignment Search
[HttpPost]
[ResponseType(typeof(Legacy.JobTracking))]
[Route("api/search/")]
public IHttpActionResult SearchConsignment(ConsignmentSearch search)
{
// Get the ID
var UserId = 0;
using (_PortalDb)
{
var User = _PortalDb.PortalUsers.FirstOrDefault(u => u.ServerUser == search.User);
if (User != null) UserId = User.UserId;
}
List<Legacy.JobTracking> Consignments;
if (!ModelState.IsValid) return BadRequest("Invalid Search");
if (search.JobNo == null && search.CustRef == null && search.ConRef == null && search.DateFrom == null && search.DateTo == null) return BadRequest("No search filters");
if (search.JobNo != null)
{
// Run Job number search and continue
Consignments = Legacy.Exporter.GetJobByNo(search.JobNo, search.User, search.Account, UserId);
}
else if (search.ConRef != null)
{
// Run Con Ref Search and continue
Consignments = Legacy.Exporter.GetJobByCon(search.ConRef, search.User, search.Account, UserId);
}
else if (search.CustRef != null)
{
// Run Customer Ref Search and continue
Consignments = Legacy.Exporter.GetJobByRef(search.CustRef, search.User, search.Account, UserId);
}
else if (search.DateFrom != null && search.DateTo != null)
{
// Run Date Range Search and continue
Consignments = Legacy.Exporter.GetJobsInDateRange(search.DateTo, search.DateFrom, search.User, search.Account, UserId);
}
else
{
return BadRequest("Invalid Date Search");
}
return Ok(Consignments);
}
クラス:体内の
public class ConsignmentSearch
{
public string JobNo;
public string CustRef;
public string ConRef;
public string DateFrom;
public string DateTo;
public string User;
public string Account;
}
とJSON:あなたのリクエストのボディに渡す
["consignmentSearch": {
"dateFrom": "20150101",
"dateTo": 20160101,
"user": "LianeS",
"account": "PORTAL"
}]
これは完璧です!ありがとう! –