我有启用属性路由的 ASP.NET Web API 2.1 项目,并且控制器操作装饰如下:
[Route("api/product/barcode/{barcodeType}/{barcode}")]
public async Task<IHttpActionResult> GetProduct([FromUri] BarcodeSearchCriteria searchCriteria)
其中 BarcodeSearchCriteria 是一个复杂类型:
public class BarcodeSearchCriteria
{
public string Barcode { get; set; }
public string BarcodeType { get; set; }
}
它适用于这样的“常规”网址:
/api/product/barcode/EAN/0747599330971
但如何同时支持这样的网址:
/api/product/barcode/?barcodeType=EAN&barcode=0747599330971
在切换到“可读”模式之前,我曾经在我的 *.webtest 中使用它。