我的ASP.NET Web API啓用2.1項目與屬性的路由和控制器動作裝飾如下:如何在Web API屬性調用中支持「常規」和「可讀」URL?
[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
但如何在同一時間支持URL是這樣的:
/api/product/barcode/?barcodeType=EAN&barcode=0747599330971
我以前在我的* .webtest中使用它,然後切換到「可讀」模式。
它似乎用來工作,但在一段時間前停止工作。現在我得到的是相同的錯誤:「控制器'產品'找不到匹配請求的操作」。當配置了1(默認)或2(也包含動作)路由時。 – abatishchev
嗯..這應該工作...確保你的屬性路由已經在你的配置中的常規路由之前註冊了。這是因爲任何匹配傳統路由的請求都無法達到屬性控制器/操作。 –
我的錯誤是在路線註冊順序。謝謝! – abatishchev