J'ai une application MVC qui renvoie un ResultObjekt
après avoir traité un FormulaData
objet. C'est une API de repos appelée via HTTP-Post.
[HttpPost]
[ActionName("GetResult")]
public ResultObjekt GetResult([FromBody]FormularData values)
{
}
Question : Existe-t-il un moyen de lire toutes les propriétés de values
en un Dictionary<string, string>
ou un IEnumerable<KeyValuePair<string, string>>
?
par exemple
public class FormularData
{
public string Item1 { get; set; }
public string Item2 { get; set; }
}
devrait donner lieu à un Dictionary<string,string>()
ou un IEnumerable<KeyValuePair<string, string>>
avec des valeurs { {"Item1","Value1"}, {"Item2","Value2"}}
Ma solution précédente fonctionnait avec Querystring
y HttpGet
au lieu de HttpPost
et depuis que j'ai changé, Request.GetQueryNameValuePairs().ToDictionary(x => x.Key, x => x.Value)
ne fonctionne plus.
Voici ma solution actuelle - pas très jolie :
[HttpPost]
[ActionName("GetResult")]
public ResultObjekt GetResult([FromBody]FormularData values)
{
List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
if (!string.IsNullOrEmpty(values.Item1))
{
list.Add(new KeyValuePair<string, string>("Item1", values.Item1));
}
if (!string.IsNullOrEmpty(values.Item2))
{
list.Add(new KeyValuePair<string, string>("Item2", values.Item2));
}
IEnumerable<KeyValuePair<string, string>> result = list.AsEnumerable();
}