我在这里阅读了所有类似的问题,但我无法提出解决方案。我正在尝试调用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
总是空着。
答案 0 :(得分:2)
答案 1 :(得分:0)
即使它已经很晚了,但是可以使用以下方法以名称/值对的形式返回查询参数- this.Url.Request.GetQueryNameValuePairs()
我有以下网址- 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
}
希望这会有所帮助!
答案 2 :(得分:-4)
一种简单的方式,而不是字典:
//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