我對API和MVC比較陌生,我仍在學習。我只通過檢索(全部)數據,更新,添加和刪除,完成了Web API和客戶端MVC(GET,PUT,POST,DEL)的基礎知識。這是我的老師用來上課的主要指南。 http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-1具有多個可選參數(客戶端和API)的搜索功能
我目前在短期休息,我正在探索自己。我遇到了一個特定的任務,通過10個左右的參數過濾器顯示項目列表,其中大部分都是可選字段。 字段:名稱,形狀,顏色,簽名,產品代碼等。 大多數字段都是可以爲空的,但選定的幾個字段爲空列表。
大多數指南和教程會給我一些參數的例子1,也許不過此任務需要不止於此。
這裏的問題是,我不知道如何從一個MVC客戶在通過API傳遞這麼多參數。我讀過很多其他的解決方案,它可以通過他們的URI
baseuri/action?a=&b=&c=1&d=example
但我怎麼能忽略空字段永遠不會被填補,僅搜索中實際填充到數據庫中的呢?
baseuri/action?a=&b=&c=1&d=example
//ignoring a and b
var result = from b in db.table where (c==1 && d==example)
我的老師暗示我,使我自己的控制器和功能,但我不太確定如何去做。
有一些解決方案,建議我使用[FromURI],但搜索功能太複雜,我也不太清楚如何使用[FromBody]工作,要麼。
任何幫助?
但不會效率超低,因爲我處理10+左右的參數?這個解決方案對於一些參數看起來很好,但對於10個以上的參數來說並不那麼重要。 – Kei
它的話,你可以用'ActionContext.Request.RequestUri.Query.ParseQueryString()'(在'System.Web.HttpUtility'擴展方法)來獲取NameValueCollection中的查詢參數和過濾結果基礎上,這個值的循環 –
內我已經在答案中添加了示例,請看看 –