如何将字典参数传递给web-api方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将字典参数传递给web-api方法?相关的知识,希望对你有一定的参考价值。
我在这里读过所有类似的问题,但我无法提出解决方案。我正在尝试调用web-api方法:
[HttpGet]
public SearchViewModel Get(SearchTypes type, string text, [FromUri]Dictionary<string, string> toyParams)
{
//Code here
}
我想从uri获取最后一个参数。我试过了
和
http://localhost:39101/#!/search/toys/fox?toyParams[0].Key=someParameter&toyParams[0].Value=123
但toyParams Dictionary
总是空着。
答案
即使它很晚但是跟随方法可用于将查询参数作为名称/值对返回 - this.Url.Request.GetQueryNameValuePairs()
我跟随Url - http://localhost:49980/api/MyRestAPI/postSomeData/?a=v&d=e
以下是我的方法,用Web API 2编写 -
[HttpPost]
public IHttpActionResult SaveDataFromRestToDB(string dataKey) {
var parameters = this.Url.Request.GetQueryNameValuePairs();
//parameters returns KeyValuePair<string, string>[2], containing values passed in Url Query
}
希望这可以帮助!!
另一答案
一种简单的方法,而不是字典:
//DTO
public class SearchDTO
{
public int MyProperty1 { get; set; }
public int MyProperty2 { get; set; }
public int MyProperty3 { get; set; }
}
MyProperty1
,MyProperty2
,MyProperty3
是基于哪些必须搜索的参数。
//GET Method
public string Get([FromUri]SearchDTO searchDTO)
{
return "search result";
}
以下是呼叫网址:
http://localhost:56880/api/values?myproperty1=1&myproperty2=2&myproperty3=3
以上是关于如何将字典参数传递给web-api方法?的主要内容,如果未能解决你的问题,请参考以下文章