Asp.net

通過 GET 的 Mvc Web API 複雜對象查詢

  • February 12, 2013

有沒有辦法通過“GET”查詢 web api,但參數中有復雜的對象?

到目前為止,我看到的所有範例似乎都表明我必須使用“POST”。但我不想使用“POST”,因為這是一個查詢,同時我不想要一個有 16 個參數的函式,因為那會很脆。

public Product Get(int id, string name, DateTime createdBy, string stockNumber, ... ) 
   { 
         ...
   }

我希望將上述內容變成:

public Product Get(ProductQuery query) 
   { 
         ...
   }

有沒有辦法做到這一點?以及如何使 HttpClient 與上述服務一起工作。

您可以ProductQuery傳遞參數[FromUri]

假設這是您的ProductQuery課程:

public class ProductQuery
{
   public int Id { get; set; }
   public string Name { get; set; }
   public DateTime CreatedBy { get; set; }
   public string StockNumber { get; set; }
}

[FromUri]您可以使用…註釋您的操作參數

   public Product Get([FromUri] ProductQuery productQuery)
   {...}

…並且具有ProductQuery(ie Id, Name, …) 的屬性可以從 Uri 中的查詢字元串傳入:

http://.../api/products?Id=1&Name=Product1&CreatedBy=1/4/2013&StockNumber=ABC0001

引用自:https://stackoverflow.com/questions/14163210