39
我正在嘗試使用Web API 2屬性路由來設置自定義API。我有我的路線工作,以便我的函數被調用,但出於某種原因,我需要傳遞我的第一個參數,以便一切正常工作。以下是我想支持網址:在ASP.NET Web API中使用可選參數進行屬性路由
http://mysite/api/servicename/parameter1
http://mysite/api/servicename/parameter1?parameter2=value2
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3
http://mysite/api/servicename/parameter1?parameter2=value2¶meter3=value3&p4=v4
最後3個網址工作,但第一個說「不採取行動是控制器‘控制器名稱’與請求匹配上找到。」
我的控制器看起來是這樣的:
public class MyServiceController : ApiController
{
[Route("api/servicename/{parameter1}")]
[HttpGet]
public async Task<ReturnType> Get(string parameter1, DateTime? parameter2, string parameter3 = "", string p4 = "")
{
// process
}
}
呃,當然這很明顯。謝謝! – sohum
您的RouteAttribute最終看起來支持可選參數(或者如果您的路由與原始文章一樣,請求URL的外觀如何)? – Colin