簡體   English   中英

WebAPI路由到具有多個可選參數的函數

[英]WebAPI routing to a function with multiple optional parameters

我在WebAPI控制器中將以下函數標頭聲明為route:

[Route("page/{page}/{cityfilter?}/{statefilter?}/{organizationfilter?}")]
public IEnumerable<Contact> GetContact(int page, string cityfilter = null, string statefilter = null, string organizationfilter = null)
{
     ...
}

這里的問題是我希望每個參數都是可選的,所以我想發出一個包含cityfilter,statefilter,organization filter,其中兩個或三個的請求,然后進行處理並路由器通過此功能,但是我不知道如何構建URI,例如,該路由僅適用於狀態過濾器。

如何在WebAPI中做到這一點? 我應該如何從例如Jquery Ajax調用中調用資源地址?

謝謝。

由於參數是簡單類型(字符串),因此可以從路由數據(URL路徑)或查詢字符串中綁定參數。 因此,您可以將可選參數移至查詢字符串,並使路由僅與page參數匹配。

[Route("page/{page}")]

這是一個URL示例,您可以使用該URL從瀏覽器或AJAX調用中調用此操作:

www.yourapidomain.com/page/1?cityfilter=aCityFilterString&statefilter=aStateFilterString&organizationfilter=anOrganizationFilter

您當然可以省略任何可選參數或更改其順序。

動作方法簽名可以保留在您的示例中。

有關更多信息,您可以查看參數綁定ASP.NET Web API

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM